@@ -39,7 +39,7 @@ use profile_traits::mem::{Report, ReportKind, ReportsChan};
3939use profile_traits:: time:: ProfilerChan ;
4040use serde:: { Deserialize , Serialize } ;
4141use servo_arc:: Arc as ServoArc ;
42- use servo_url:: ServoUrl ;
42+ use servo_url:: { ImmutableOrigin , ServoUrl } ;
4343use std:: borrow:: { Cow , ToOwned } ;
4444use std:: collections:: HashMap ;
4545use std:: fs:: { self , File } ;
@@ -299,8 +299,10 @@ impl ResourceChannelManager {
299299 . send ( cookie_jar. cookies_for_url ( & url, source) )
300300 . unwrap ( ) ;
301301 } ,
302- CoreResourceMsg :: NetworkMediator ( mediator_chan) => {
303- self . resource_manager . swmanager_chan = Some ( mediator_chan)
302+ CoreResourceMsg :: NetworkMediator ( mediator_chan, origin) => {
303+ self . resource_manager
304+ . sw_managers
305+ . insert ( origin, mediator_chan) ;
304306 } ,
305307 CoreResourceMsg :: GetCookiesDataForUrl ( url, consumer, source) => {
306308 let mut cookie_jar = http_state. cookie_jar . write ( ) . unwrap ( ) ;
@@ -431,7 +433,7 @@ pub struct AuthCache {
431433pub struct CoreResourceManager {
432434 user_agent : Cow < ' static , str > ,
433435 devtools_chan : Option < Sender < DevtoolsControlMsg > > ,
434- swmanager_chan : Option < IpcSender < CustomResponseMediator > > ,
436+ sw_managers : HashMap < ImmutableOrigin , IpcSender < CustomResponseMediator > > ,
435437 filemanager : FileManager ,
436438 thread_pool : Arc < CoreResourceThreadPool > ,
437439 certificate_path : Option < String > ,
@@ -575,7 +577,7 @@ impl CoreResourceManager {
575577 CoreResourceManager {
576578 user_agent : user_agent,
577579 devtools_chan : devtools_channel,
578- swmanager_chan : None ,
580+ sw_managers : Default :: default ( ) ,
579581 filemanager : FileManager :: new ( embedder_proxy, Arc :: downgrade ( & pool_handle) ) ,
580582 thread_pool : pool_handle,
581583 certificate_path,
0 commit comments