summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-22 21:59:33 +0000
committerananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-22 21:59:33 +0000
commiteef2c2ed6ea089b49c0f6468154d5a4d524abaeb (patch)
treefc5f8f1c0cf71a29f26edf06d76d48b5c87e7ff4
parentcf490988816ae60014be7e068ad9d5ec4730d67e (diff)
downloadchromium_src-eef2c2ed6ea089b49c0f6468154d5a4d524abaeb.zip
chromium_src-eef2c2ed6ea089b49c0f6468154d5a4d524abaeb.tar.gz
chromium_src-eef2c2ed6ea089b49c0f6468154d5a4d524abaeb.tar.bz2
Fix a high frequency chrome frame crasher which occurs while uploading UMA data. The crash
occcurs while processing a proxy change request and specifically occurs while invoking on the NetLog instance maintained by a chrome frame url request context instantiated specifically to upload data. The proxy service is a ref counted object and the net log instance is not which leads to a race condition if the netlog instance is destroyed before the proxy service. Fix is to not create a netlog instance for chrome frame uma requests. Fixes bug http://code.google.com/p/chromium/issues/detail?id=60203 Bug=60203 Review URL: http://codereview.chromium.org/3985006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63571 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome_frame/metrics_service.cc6
1 files changed, 1 insertions, 5 deletions
diff --git a/chrome_frame/metrics_service.cc b/chrome_frame/metrics_service.cc
index 461862f..659cd36 100644
--- a/chrome_frame/metrics_service.cc
+++ b/chrome_frame/metrics_service.cc
@@ -154,11 +154,8 @@ class ChromeFrameUploadRequestContext : public URLRequestContext {
net::ProxyService::CreateSystemProxyConfigService(NULL, NULL);
DCHECK(proxy_config_service);
- const size_t kNetLogBound = 50u;
- net_log_.reset(new net::CapturingNetLog(kNetLogBound));
-
proxy_service_ = net::ProxyService::CreateUsingSystemProxyResolver(
- proxy_config_service, 0, net_log_.get());
+ proxy_config_service, 0, NULL);
DCHECK(proxy_service_);
ssl_config_service_ = new net::SSLConfigServiceDefaults;
@@ -193,7 +190,6 @@ class ChromeFrameUploadRequestContext : public URLRequestContext {
private:
std::string user_agent_;
MessageLoop* io_loop_;
- scoped_ptr<net::NetLog> net_log_;
scoped_ptr<net::URLSecurityManager> url_security_manager_;
};