net: use connection pooling

This commit is contained in:
Sean McArthur 2015-08-05 10:46:13 -07:00 committed by Josh Matthews
parent b7c88dd547
commit a1a9db8ffd
10 changed files with 185 additions and 133 deletions

View file

@ -9,7 +9,7 @@ use cookie;
use cookie_storage::CookieStorage;
use data_loader;
use file_loader;
use http_loader;
use http_loader::{self, create_http_connector, Connector};
use mime_classifier::MIMEClassifier;
use net_traits::ProgressMsg::Done;
@ -22,6 +22,7 @@ use util::task::spawn_named;
use hsts::{HSTSList, HSTSEntry, preload_hsts_domains};
use devtools_traits::{DevtoolsControlMsg};
use hyper::client::pool::Pool;
use hyper::header::{ContentType, Header, SetCookie, UserAgent};
use hyper::mime::{Mime, TopLevel, SubLevel};
use ipc_channel::ipc::{self, IpcReceiver, IpcSender};
@ -191,7 +192,8 @@ pub struct ResourceManager {
resource_task: IpcSender<ControlMsg>,
mime_classifier: Arc<MIMEClassifier>,
devtools_chan: Option<Sender<DevtoolsControlMsg>>,
hsts_list: HSTSList
hsts_list: HSTSList,
connector: Arc<Pool<Connector>>,
}
impl ResourceManager {
@ -205,7 +207,8 @@ impl ResourceManager {
resource_task: resource_task,
mime_classifier: Arc::new(MIMEClassifier::new()),
devtools_chan: devtools_channel,
hsts_list: hsts_list
hsts_list: hsts_list,
connector: create_http_connector(),
}
}
}
@ -243,7 +246,9 @@ impl ResourceManager {
let loader = match &*load_data.url.scheme {
"file" => from_factory(file_loader::factory),
"http" | "https" | "view-source" =>
http_loader::factory(self.resource_task.clone(), self.devtools_chan.clone()),
http_loader::factory(self.resource_task.clone(),
self.devtools_chan.clone(),
self.connector.clone()),
"data" => from_factory(data_loader::factory),
"about" => from_factory(about_loader::factory),
_ => {