diff options
author | Anthony Ramine <n.oxyde@gmail.com> | 2017-04-03 11:38:30 +0200 |
---|---|---|
committer | Anthony Ramine <n.oxyde@gmail.com> | 2017-04-03 12:47:33 +0200 |
commit | 016fee016b2bbf301e98907cfe2176296bd8f08d (patch) | |
tree | 93597312c985acd571bfcd3bc561c8d16512644d /components/net | |
parent | 7b16021a896d972273f206d502b56fd70139e43b (diff) | |
download | servo-016fee016b2bbf301e98907cfe2176296bd8f08d.tar.gz servo-016fee016b2bbf301e98907cfe2176296bd8f08d.zip |
Move the HTTP connector to FetchContext
Diffstat (limited to 'components/net')
-rw-r--r-- | components/net/fetch/methods.rs | 7 | ||||
-rw-r--r-- | components/net/http_loader.rs | 9 | ||||
-rw-r--r-- | components/net/lib.rs | 2 | ||||
-rw-r--r-- | components/net/resource_thread.rs | 5 |
4 files changed, 12 insertions, 11 deletions
diff --git a/components/net/fetch/methods.rs b/components/net/fetch/methods.rs index 55d1c0ecd48..438a630e4f9 100644 --- a/components/net/fetch/methods.rs +++ b/components/net/fetch/methods.rs @@ -3,13 +3,14 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use blob_loader::load_blob_sync; +use connector::Connector; use data_loader::decode; use devtools_traits::DevtoolsControlMsg; use fetch::cors_cache::CorsCache; use filemanager_thread::FileManager; use http_loader::{HttpState, determine_request_referrer, http_fetch, set_default_accept_language}; -use hyper::Error; -use hyper::error::Result as HyperResult; +use hyper::{Error, Result as HyperResult}; +use hyper::client::Pool; use hyper::header::{Accept, AcceptLanguage, ContentLanguage, ContentType}; use hyper::header::{Header, HeaderFormat, HeaderView, Headers, QualityItem}; use hyper::header::{Referer as RefererHeader, q, qitem}; @@ -28,6 +29,7 @@ use std::fs::File; use std::io::Read; use std::mem; use std::str; +use std::sync::Arc; use std::sync::mpsc::{Sender, Receiver}; use subresource_integrity::is_response_integrity_valid; @@ -43,6 +45,7 @@ pub struct FetchContext { pub user_agent: Cow<'static, str>, pub devtools_chan: Option<Sender<DevtoolsControlMsg>>, pub filemanager: FileManager, + pub connector: Arc<Pool<Connector>>, } pub type DoneChannel = Option<(Sender<Data>, Receiver<Data>)>; diff --git a/components/net/http_loader.rs b/components/net/http_loader.rs index 4712a8dc6ea..7f300202782 100644 --- a/components/net/http_loader.rs +++ b/components/net/http_loader.rs @@ -3,7 +3,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use brotli::Decompressor; -use connector::{Connector, create_http_connector, create_ssl_client}; +use connector::Connector; use cookie; use cookie_storage::CookieStorage; use devtools_traits::{ChromeToDevtoolsControlMsg, DevtoolsControlMsg, HttpRequest as DevtoolsHttpRequest}; @@ -69,17 +69,14 @@ pub struct HttpState { pub hsts_list: Arc<RwLock<HstsList>>, pub cookie_jar: Arc<RwLock<CookieStorage>>, pub auth_cache: Arc<RwLock<AuthCache>>, - pub connector_pool: Arc<Pool<Connector>>, } impl HttpState { - pub fn new(certificate_path: &str) -> HttpState { - let ssl_client = create_ssl_client(certificate_path); + pub fn new() -> HttpState { HttpState { hsts_list: Arc::new(RwLock::new(HstsList::new())), cookie_jar: Arc::new(RwLock::new(CookieStorage::new(150))), auth_cache: Arc::new(RwLock::new(AuthCache::new())), - connector_pool: create_http_connector(ssl_client), } } } @@ -1048,7 +1045,7 @@ fn http_network_fetch(request: &Request, // Step 4 let factory = NetworkHttpRequestFactory { - connector: context.state.connector_pool.clone(), + connector: context.connector.clone(), }; let url = request.current_url(); diff --git a/components/net/lib.rs b/components/net/lib.rs index 648118d10c0..34018dc6a65 100644 --- a/components/net/lib.rs +++ b/components/net/lib.rs @@ -42,7 +42,7 @@ extern crate websocket; mod blob_loader; mod chrome_loader; -mod connector; +pub mod connector; pub mod cookie; pub mod cookie_storage; mod data_loader; diff --git a/components/net/resource_thread.rs b/components/net/resource_thread.rs index 8df207eda24..c58d71fd992 100644 --- a/components/net/resource_thread.rs +++ b/components/net/resource_thread.rs @@ -330,12 +330,12 @@ impl CoreResourceManager { hsts_list: group.hsts_list.clone(), cookie_jar: group.cookie_jar.clone(), auth_cache: group.auth_cache.clone(), - // FIXME(#15694): use group.connector.clone() instead. - connector_pool: create_http_connector(group.ssl_client.clone()), }; 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()); thread::Builder::new().name(format!("fetch thread for {}", init.url)).spawn(move || { let mut request = Request::from_init(init); @@ -348,6 +348,7 @@ impl CoreResourceManager { user_agent: ua, devtools_chan: dc, filemanager: filemanager, + connector: connector, }; fetch(&mut request, &mut sender, &context); }).expect("Thread spawning failed"); |