aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/servo/lib.rs17
-rw-r--r--components/util/opts.rs4
2 files changed, 14 insertions, 7 deletions
diff --git a/components/servo/lib.rs b/components/servo/lib.rs
index 83de1b52db1..509d9fa00ce 100644
--- a/components/servo/lib.rs
+++ b/components/servo/lib.rs
@@ -87,9 +87,12 @@ 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::path::PathBuf;
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;
@@ -177,7 +180,9 @@ impl<Window> Browser<Window> 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(),
@@ -242,7 +247,9 @@ impl<Window> Browser<Window> where Window: WindowMethods + 'static {
}
}
-fn create_constellation(opts: opts::Opts,
+fn create_constellation(user_agent: Cow<'static, str>,
+ config_dir: Option<PathBuf>,
+ url: Option<Url>,
compositor_proxy: Box<CompositorProxy + Send>,
time_profiler_chan: time::ProfilerChan,
mem_profiler_chan: mem::ProfilerChan,
@@ -254,10 +261,10 @@ fn create_constellation(opts: opts::Opts,
let bluetooth_thread: IpcSender<BluetoothRequest> = 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);
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(),
@@ -284,7 +291,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();
};
diff --git a/components/util/opts.rs b/components/util/opts.rs
index cf7c5cafed2..1d032a07d08 100644
--- a/components/util/opts.rs
+++ b/components/util/opts.rs
@@ -215,7 +215,7 @@ pub struct Opts {
pub use_msaa: bool,
/// Directory for a default config directory
- pub config_dir: Option<String>,
+ pub config_dir: Option<PathBuf>,
// don't skip any backtraces on panic
pub full_backtraces: bool,
@@ -857,7 +857,7 @@ pub fn from_cmdline_args(args: &[String]) -> ArgumentParsingResult {
enable_vsync: !debug_options.disable_vsync,
webrender_stats: debug_options.webrender_stats,
use_msaa: debug_options.use_msaa,
- config_dir: opt_match.opt_str("config-dir"),
+ config_dir: opt_match.opt_str("config-dir").map(Into::into),
full_backtraces: debug_options.full_backtraces,
is_printing_version: is_printing_version,
webrender_debug: debug_options.webrender_debug,