make Opts.url an Option<> type, only emit initial url load if url exists

this is a necessary change for embedded apps to prevent an initial about:blank
page load from overwriting whatever the app was actually trying to load
This commit is contained in:
Mike Blumenkrantz 2015-05-26 21:18:32 -04:00
parent fcf449517d
commit b1ae5e7523
3 changed files with 11 additions and 7 deletions

View file

@ -168,10 +168,13 @@ fn create_constellation(opts: opts::Opts,
storage_task); storage_task);
// Send the URL command to the constellation. // Send the URL command to the constellation.
{ match opts.url {
Some(url) => {
let ConstellationChan(ref chan) = constellation_chan; let ConstellationChan(ref chan) = constellation_chan;
chan.send(ConstellationMsg::InitLoadUrl(opts.url.clone())).unwrap(); chan.send(ConstellationMsg::InitLoadUrl(url.clone())).unwrap();
} },
None => ()
};
constellation_chan constellation_chan
} }

View file

@ -24,7 +24,7 @@ use url::{self, Url};
#[derive(Clone)] #[derive(Clone)]
pub struct Opts { pub struct Opts {
/// The initial URL to load. /// The initial URL to load.
pub url: Url, pub url: Option<Url>,
/// How many threads to use for CPU painting (`-t`). /// How many threads to use for CPU painting (`-t`).
/// ///
@ -198,7 +198,7 @@ static FORCE_CPU_PAINTING: bool = false;
pub fn default_opts() -> Opts { pub fn default_opts() -> Opts {
Opts { Opts {
url: Url::parse("about:blank").unwrap(), url: Some(Url::parse("about:blank").unwrap()),
paint_threads: 1, paint_threads: 1,
gpu_painting: false, gpu_painting: false,
tile_size: 512, tile_size: 512,
@ -370,7 +370,7 @@ pub fn from_cmdline_args(args: &[String]) -> bool {
}; };
let opts = Opts { let opts = Opts {
url: url, url: Some(url),
paint_threads: paint_threads, paint_threads: paint_threads,
gpu_painting: gpu_painting, gpu_painting: gpu_painting,
tile_size: tile_size, tile_size: tile_size,

View file

@ -74,6 +74,7 @@ pub extern "C" fn cef_initialize(args: *const cef_main_args_t,
temp_opts.hard_fail = false; temp_opts.hard_fail = false;
temp_opts.enable_text_antialiasing = true; temp_opts.enable_text_antialiasing = true;
temp_opts.resources_path = None; temp_opts.resources_path = None;
temp_opts.url = None;
opts::set(temp_opts); opts::set(temp_opts);
if unsafe { (*settings).windowless_rendering_enabled != 0 } { if unsafe { (*settings).windowless_rendering_enabled != 0 } {