mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
Store SSL context in ResourceGroup
This allows sharing it with the HTTP state in CoreResourceManager::fetch.
This commit is contained in:
parent
7a4632bfa2
commit
02b2aa159a
1 changed files with 5 additions and 2 deletions
|
@ -21,6 +21,7 @@ use net_traits::{CustomResponseMediator, ResourceId};
|
||||||
use net_traits::{ResourceThreads, WebSocketCommunicate, WebSocketConnectData};
|
use net_traits::{ResourceThreads, WebSocketCommunicate, WebSocketConnectData};
|
||||||
use net_traits::request::{Request, RequestInit};
|
use net_traits::request::{Request, RequestInit};
|
||||||
use net_traits::storage_thread::StorageThreadMsg;
|
use net_traits::storage_thread::StorageThreadMsg;
|
||||||
|
use openssl::ssl::SslContext;
|
||||||
use profile_traits::time::ProfilerChan;
|
use profile_traits::time::ProfilerChan;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use serde_json;
|
use serde_json;
|
||||||
|
@ -46,6 +47,7 @@ pub struct ResourceGroup {
|
||||||
cookie_jar: Arc<RwLock<CookieStorage>>,
|
cookie_jar: Arc<RwLock<CookieStorage>>,
|
||||||
auth_cache: Arc<RwLock<AuthCache>>,
|
auth_cache: Arc<RwLock<AuthCache>>,
|
||||||
hsts_list: Arc<RwLock<HstsList>>,
|
hsts_list: Arc<RwLock<HstsList>>,
|
||||||
|
ssl_context: Arc<SslContext>,
|
||||||
connector: Arc<Pool<Connector>>,
|
connector: Arc<Pool<Connector>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -109,12 +111,14 @@ fn create_resource_groups(config_dir: Option<&Path>)
|
||||||
cookie_jar: Arc::new(RwLock::new(cookie_jar)),
|
cookie_jar: Arc::new(RwLock::new(cookie_jar)),
|
||||||
auth_cache: Arc::new(RwLock::new(auth_cache)),
|
auth_cache: Arc::new(RwLock::new(auth_cache)),
|
||||||
hsts_list: Arc::new(RwLock::new(hsts_list.clone())),
|
hsts_list: Arc::new(RwLock::new(hsts_list.clone())),
|
||||||
|
ssl_context: ssl_context.clone(),
|
||||||
connector: create_http_connector(ssl_context.clone()),
|
connector: create_http_connector(ssl_context.clone()),
|
||||||
};
|
};
|
||||||
let private_resource_group = ResourceGroup {
|
let private_resource_group = ResourceGroup {
|
||||||
cookie_jar: Arc::new(RwLock::new(CookieStorage::new(150))),
|
cookie_jar: Arc::new(RwLock::new(CookieStorage::new(150))),
|
||||||
auth_cache: Arc::new(RwLock::new(AuthCache::new())),
|
auth_cache: Arc::new(RwLock::new(AuthCache::new())),
|
||||||
hsts_list: Arc::new(RwLock::new(HstsList::new())),
|
hsts_list: Arc::new(RwLock::new(HstsList::new())),
|
||||||
|
ssl_context: ssl_context.clone(),
|
||||||
connector: create_http_connector(ssl_context),
|
connector: create_http_connector(ssl_context),
|
||||||
};
|
};
|
||||||
(resource_group, private_resource_group)
|
(resource_group, private_resource_group)
|
||||||
|
@ -320,13 +324,12 @@ impl CoreResourceManager {
|
||||||
init: RequestInit,
|
init: RequestInit,
|
||||||
mut sender: IpcSender<FetchResponseMsg>,
|
mut sender: IpcSender<FetchResponseMsg>,
|
||||||
group: &ResourceGroup) {
|
group: &ResourceGroup) {
|
||||||
let ssl_context = create_ssl_context("certs");
|
|
||||||
let http_state = HttpState {
|
let http_state = HttpState {
|
||||||
hsts_list: group.hsts_list.clone(),
|
hsts_list: group.hsts_list.clone(),
|
||||||
cookie_jar: group.cookie_jar.clone(),
|
cookie_jar: group.cookie_jar.clone(),
|
||||||
auth_cache: group.auth_cache.clone(),
|
auth_cache: group.auth_cache.clone(),
|
||||||
// FIXME(#15694): use group.connector.clone() instead.
|
// FIXME(#15694): use group.connector.clone() instead.
|
||||||
connector_pool: create_http_connector(ssl_context),
|
connector_pool: create_http_connector(group.ssl_context.clone()),
|
||||||
};
|
};
|
||||||
let ua = self.user_agent.clone();
|
let ua = self.user_agent.clone();
|
||||||
let dc = self.devtools_chan.clone();
|
let dc = self.devtools_chan.clone();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue