diff options
Diffstat (limited to 'net/proxy')
-rw-r--r-- | net/proxy/init_proxy_resolver_unittest.cc | 6 | ||||
-rw-r--r-- | net/proxy/proxy_resolver_v8_unittest.cc | 8 | ||||
-rw-r--r-- | net/proxy/proxy_service.cc | 4 | ||||
-rw-r--r-- | net/proxy/proxy_service_unittest.cc | 6 | ||||
-rw-r--r-- | net/proxy/single_threaded_proxy_resolver.cc | 22 | ||||
-rw-r--r-- | net/proxy/single_threaded_proxy_resolver_unittest.cc | 2 |
6 files changed, 29 insertions, 19 deletions
diff --git a/net/proxy/init_proxy_resolver_unittest.cc b/net/proxy/init_proxy_resolver_unittest.cc index e9d05a2..680a870 100644 --- a/net/proxy/init_proxy_resolver_unittest.cc +++ b/net/proxy/init_proxy_resolver_unittest.cc @@ -171,7 +171,7 @@ TEST(InitProxyResolverTest, CustomPacSucceeds) { Rules::Rule rule = rules.AddSuccessRule("http://custom/proxy.pac"); TestCompletionCallback callback; - scoped_refptr<LoadLog> log(new LoadLog); + scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); InitProxyResolver init(&resolver, &fetcher); EXPECT_EQ(OK, init.Init(config, &callback, log)); EXPECT_EQ(rule.bytes(), resolver.pac_bytes()); @@ -204,7 +204,7 @@ TEST(InitProxyResolverTest, CustomPacFails1) { rules.AddFailDownloadRule("http://custom/proxy.pac"); TestCompletionCallback callback; - scoped_refptr<LoadLog> log(new LoadLog); + scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); InitProxyResolver init(&resolver, &fetcher); EXPECT_EQ(kFailedDownloading, init.Init(config, &callback, log)); EXPECT_EQ("", resolver.pac_bytes()); @@ -288,7 +288,7 @@ TEST(InitProxyResolverTest, AutodetectFailCustomSuccess2) { Rules::Rule rule = rules.AddSuccessRule("http://custom/proxy.pac"); TestCompletionCallback callback; - scoped_refptr<LoadLog> log(new LoadLog); + scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); InitProxyResolver init(&resolver, &fetcher); EXPECT_EQ(OK, init.Init(config, &callback, log)); EXPECT_EQ(rule.bytes(), resolver.pac_bytes()); diff --git a/net/proxy/proxy_resolver_v8_unittest.cc b/net/proxy/proxy_resolver_v8_unittest.cc index 550426a..54830bf 100644 --- a/net/proxy/proxy_resolver_v8_unittest.cc +++ b/net/proxy/proxy_resolver_v8_unittest.cc @@ -118,7 +118,7 @@ TEST(ProxyResolverV8Test, Direct) { EXPECT_EQ(OK, result); ProxyInfo proxy_info; - scoped_refptr<LoadLog> log(new LoadLog); + scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); result = resolver.GetProxyForURL(kQueryUrl, &proxy_info, NULL, NULL, log); EXPECT_EQ(OK, result); @@ -423,7 +423,7 @@ TEST(ProxyResolverV8Test, LoadLog) { EXPECT_EQ(OK, result); ProxyInfo proxy_info; - scoped_refptr<LoadLog> log(new LoadLog); + scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); result = resolver.GetProxyForURL(kQueryUrl, &proxy_info, NULL, NULL, log); EXPECT_EQ(OK, result); @@ -459,7 +459,7 @@ TEST(ProxyResolverV8Test, EndsWithCommentNoNewline) { EXPECT_EQ(OK, result); ProxyInfo proxy_info; - scoped_refptr<LoadLog> log(new LoadLog); + scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); result = resolver.GetProxyForURL(kQueryUrl, &proxy_info, NULL, NULL, log); EXPECT_EQ(OK, result); @@ -478,7 +478,7 @@ TEST(ProxyResolverV8Test, EndsWithStatementNoNewline) { EXPECT_EQ(OK, result); ProxyInfo proxy_info; - scoped_refptr<LoadLog> log(new LoadLog); + scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); result = resolver.GetProxyForURL(kQueryUrl, &proxy_info, NULL, NULL, log); EXPECT_EQ(OK, result); diff --git a/net/proxy/proxy_service.cc b/net/proxy/proxy_service.cc index 91a6133..0177b75 100644 --- a/net/proxy/proxy_service.cc +++ b/net/proxy/proxy_service.cc @@ -36,6 +36,8 @@ using base::TimeTicks; namespace net { +static const size_t kMaxNumLoadLogEntries = 100; + // Config getter that fails every time. class ProxyConfigServiceNull : public ProxyConfigService { public: @@ -630,7 +632,7 @@ void ProxyService::SetConfig(const ProxyConfig& config) { init_proxy_resolver_.reset( new InitProxyResolver(resolver_.get(), proxy_script_fetcher_.get())); - init_proxy_resolver_log_ = new LoadLog; + init_proxy_resolver_log_ = new LoadLog(kMaxNumLoadLogEntries); int rv = init_proxy_resolver_->Init( config_, &init_proxy_resolver_callback_, init_proxy_resolver_log_); diff --git a/net/proxy/proxy_service_unittest.cc b/net/proxy/proxy_service_unittest.cc index a7500f4..72faf17 100644 --- a/net/proxy/proxy_service_unittest.cc +++ b/net/proxy/proxy_service_unittest.cc @@ -95,7 +95,7 @@ TEST(ProxyServiceTest, Direct) { ProxyInfo info; TestCompletionCallback callback; - scoped_refptr<LoadLog> log(new LoadLog); + scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); int rv = service->ResolveProxy(url, &info, &callback, NULL, log); EXPECT_EQ(OK, rv); EXPECT_TRUE(resolver->pending_requests().empty()); @@ -122,7 +122,7 @@ TEST(ProxyServiceTest, PAC) { ProxyInfo info; TestCompletionCallback callback; - scoped_refptr<LoadLog> log(new LoadLog); + scoped_refptr<LoadLog> log(new LoadLog(LoadLog::kUnbounded)); int rv = service->ResolveProxy(url, &info, &callback, NULL, log); EXPECT_EQ(ERR_IO_PENDING, rv); @@ -1020,7 +1020,7 @@ TEST(ProxyServiceTest, CancelWhilePACFetching) { ProxyInfo info1; TestCompletionCallback callback1; ProxyService::PacRequest* request1; - scoped_refptr<LoadLog> log1(new LoadLog); + scoped_refptr<LoadLog> log1(new LoadLog(LoadLog::kUnbounded)); int rv = service->ResolveProxy( GURL("http://request1"), &info1, &callback1, &request1, log1); EXPECT_EQ(ERR_IO_PENDING, rv); diff --git a/net/proxy/single_threaded_proxy_resolver.cc b/net/proxy/single_threaded_proxy_resolver.cc index ad5fdba..5de2865 100644 --- a/net/proxy/single_threaded_proxy_resolver.cc +++ b/net/proxy/single_threaded_proxy_resolver.cc @@ -125,9 +125,12 @@ class SingleThreadedProxyResolver::Job void Start() { is_started_ = true; + size_t load_log_bound = load_log_ ? load_log_->max_num_entries() : 0; + coordinator_->thread()->message_loop()->PostTask( FROM_HERE, NewRunnableMethod(this, &Job::DoQuery, - coordinator_->resolver_.get())); + coordinator_->resolver_.get(), + load_log_bound)); } bool is_started() const { return is_started_; } @@ -149,9 +152,12 @@ class SingleThreadedProxyResolver::Job ~Job() {} // Runs on the worker thread. - void DoQuery(ProxyResolver* resolver) { - LoadLog* worker_log = new LoadLog; - worker_log->AddRef(); // Balanced in QueryComplete. + 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. + } int rv = resolver->GetProxyForURL(url_, &results_buf_, NULL, NULL, worker_log); @@ -165,9 +171,11 @@ class SingleThreadedProxyResolver::Job void QueryComplete(int result_code, LoadLog* worker_log) { // Merge the load log that was generated on the worker thread, into the // main log. - if (load_log_) - load_log_->Append(worker_log); - worker_log->Release(); + if (worker_log) { + if (load_log_) + load_log_->Append(worker_log); + worker_log->Release(); + } // The Job may have been cancelled after it was started. if (!was_cancelled()) { diff --git a/net/proxy/single_threaded_proxy_resolver_unittest.cc b/net/proxy/single_threaded_proxy_resolver_unittest.cc index 37bf14a..72cd8ee 100644 --- a/net/proxy/single_threaded_proxy_resolver_unittest.cc +++ b/net/proxy/single_threaded_proxy_resolver_unittest.cc @@ -155,7 +155,7 @@ TEST(SingleThreadedProxyResolverTest, Basic) { // Start request 0. TestCompletionCallback callback0; - scoped_refptr<LoadLog> log0(new LoadLog); + scoped_refptr<LoadLog> log0(new LoadLog(LoadLog::kUnbounded)); ProxyInfo results0; rv = resolver->GetProxyForURL( GURL("http://request0"), &results0, &callback0, NULL, log0); |