From 6079dd4de7397f01f75f0730eb34c42eb78ca05b Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Tue, 4 Apr 2017 19:40:46 -0400 Subject: [PATCH] Enable HTTP connection pooling. Retry stale connections indicated by connection reset errors. --- components/net/http_loader.rs | 4 +++- components/net/resource_thread.rs | 3 +-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/components/net/http_loader.rs b/components/net/http_loader.rs index d4ed98d54ce..059c4d1e830 100644 --- a/components/net/http_loader.rs +++ b/components/net/http_loader.rs @@ -487,7 +487,9 @@ fn obtain_response(request_factory: &NetworkHttpRequestFactory, let response = match request_writer.send() { Ok(w) => w, - Err(HttpError::Io(ref io_error)) if io_error.kind() == io::ErrorKind::ConnectionAborted => { + Err(HttpError::Io(ref io_error)) + if io_error.kind() == io::ErrorKind::ConnectionAborted || + io_error.kind() == io::ErrorKind::ConnectionReset => { debug!("connection aborted ({:?}), possibly stale, trying new connection", io_error.description()); continue; }, diff --git a/components/net/resource_thread.rs b/components/net/resource_thread.rs index b54377563a1..312b0ea45a6 100644 --- a/components/net/resource_thread.rs +++ b/components/net/resource_thread.rs @@ -330,8 +330,7 @@ impl CoreResourceManager { let ua = self.user_agent.clone(); let dc = self.devtools_chan.clone(); let filemanager = self.filemanager.clone(); - // FIXME(#15694): use group.connector.clone() instead. - let connector = create_http_connector(group.ssl_client.clone()); + let connector = group.connector.clone(); thread::Builder::new().name(format!("fetch thread for {}", init.url)).spawn(move || { let mut request = Request::from_init(init);