aboutsummaryrefslogtreecommitdiffstats
path: root/components/net
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2017-04-03 11:38:30 +0200
committerAnthony Ramine <n.oxyde@gmail.com>2017-04-03 12:47:33 +0200
commit016fee016b2bbf301e98907cfe2176296bd8f08d (patch)
tree93597312c985acd571bfcd3bc561c8d16512644d /components/net
parent7b16021a896d972273f206d502b56fd70139e43b (diff)
downloadservo-016fee016b2bbf301e98907cfe2176296bd8f08d.tar.gz
servo-016fee016b2bbf301e98907cfe2176296bd8f08d.zip
Move the HTTP connector to FetchContext
Diffstat (limited to 'components/net')
-rw-r--r--components/net/fetch/methods.rs7
-rw-r--r--components/net/http_loader.rs9
-rw-r--r--components/net/lib.rs2
-rw-r--r--components/net/resource_thread.rs5
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");