diff --git a/components/servo/lib.rs b/components/servo/lib.rs index 909daec3002c..8962c2f47d7b 100644 --- a/components/servo/lib.rs +++ b/components/servo/lib.rs @@ -87,9 +87,11 @@ use profile::time as profile_time; use profile_traits::mem; use profile_traits::time; use script_traits::{ConstellationMsg, SWManagerSenders, ScriptMsg}; +use std::borrow::Cow; use std::cmp::max; use std::rc::Rc; use std::sync::mpsc::Sender; +use url::Url; use util::opts; use util::prefs::PREFS; use util::resource_files::resources_dir_path; @@ -173,7 +175,9 @@ impl Browser where Window: WindowMethods + 'static { // Create the constellation, which maintains the engine // pipelines, including the script and layout threads, as well // as the navigation context. - let (constellation_chan, sw_senders) = create_constellation(opts.clone(), + let (constellation_chan, sw_senders) = create_constellation(opts.user_agent.clone(), + opts.config_dir.clone(), + opts.url.clone(), compositor_proxy.clone_compositor_proxy(), time_profiler_chan.clone(), mem_profiler_chan.clone(), @@ -238,7 +242,9 @@ impl Browser where Window: WindowMethods + 'static { } } -fn create_constellation(opts: opts::Opts, +fn create_constellation(user_agent: Cow<'static, str>, + config_dir: Option, + url: Option, compositor_proxy: Box, time_profiler_chan: time::ProfilerChan, mem_profiler_chan: mem::ProfilerChan, @@ -250,10 +256,10 @@ fn create_constellation(opts: opts::Opts, let bluetooth_thread: IpcSender = BluetoothThreadFactory::new(); let (public_resource_threads, private_resource_threads) = - new_resource_threads(opts.user_agent, + new_resource_threads(user_agent, devtools_chan.clone(), time_profiler_chan.clone(), - opts.config_dir.map(Into::into)); + config_dir.map(Into::into)); let image_cache_thread = new_image_cache_thread(public_resource_threads.sender(), webrender_api_sender.create_api()); let font_cache_thread = FontCacheThread::new(public_resource_threads.sender(), @@ -280,7 +286,7 @@ fn create_constellation(opts: opts::Opts, layout_thread::LayoutThread, script::script_thread::ScriptThread>::start(initial_state); - if let Some(url) = opts.url { + if let Some(url) = url { constellation_chan.send(ConstellationMsg::InitLoadUrl(url)).unwrap(); };