diff options
Diffstat (limited to 'components/net/resource_thread.rs')
-rw-r--r-- | components/net/resource_thread.rs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/components/net/resource_thread.rs b/components/net/resource_thread.rs index 79f84b65971..388cacc77af 100644 --- a/components/net/resource_thread.rs +++ b/components/net/resource_thread.rs @@ -39,7 +39,7 @@ use profile_traits::mem::{Report, ReportKind, ReportsChan}; use profile_traits::time::ProfilerChan; use serde::{Deserialize, Serialize}; use servo_arc::Arc as ServoArc; -use servo_url::ServoUrl; +use servo_url::{ImmutableOrigin, ServoUrl}; use std::borrow::{Cow, ToOwned}; use std::collections::HashMap; use std::fs::{self, File}; @@ -299,8 +299,10 @@ impl ResourceChannelManager { .send(cookie_jar.cookies_for_url(&url, source)) .unwrap(); }, - CoreResourceMsg::NetworkMediator(mediator_chan) => { - self.resource_manager.swmanager_chan = Some(mediator_chan) + CoreResourceMsg::NetworkMediator(mediator_chan, origin) => { + self.resource_manager + .sw_managers + .insert(origin, mediator_chan); }, CoreResourceMsg::GetCookiesDataForUrl(url, consumer, source) => { let mut cookie_jar = http_state.cookie_jar.write().unwrap(); @@ -431,7 +433,7 @@ pub struct AuthCache { pub struct CoreResourceManager { user_agent: Cow<'static, str>, devtools_chan: Option<Sender<DevtoolsControlMsg>>, - swmanager_chan: Option<IpcSender<CustomResponseMediator>>, + sw_managers: HashMap<ImmutableOrigin, IpcSender<CustomResponseMediator>>, filemanager: FileManager, thread_pool: Arc<CoreResourceThreadPool>, certificate_path: Option<String>, @@ -575,7 +577,7 @@ impl CoreResourceManager { CoreResourceManager { user_agent: user_agent, devtools_chan: devtools_channel, - swmanager_chan: None, + sw_managers: Default::default(), filemanager: FileManager::new(embedder_proxy, Arc::downgrade(&pool_handle)), thread_pool: pool_handle, certificate_path, |