diff --git a/components/net/about_loader.rs b/components/net/about_loader.rs index c4b52e55116..afc089c625a 100644 --- a/components/net/about_loader.rs +++ b/components/net/about_loader.rs @@ -15,6 +15,13 @@ use std::sync::Arc; use url::Url; use util::resource_files::resources_dir_path; +fn url_from_non_relative_scheme(load_data: &mut LoadData, filename: &str) { + let mut path = resources_dir_path(); + path.push(filename); + assert!(path.exists()); + load_data.url = Url::from_file_path(&*path).unwrap(); +} + pub fn factory(mut load_data: LoadData, start_chan: LoadConsumer, classifier: Arc, @@ -41,13 +48,9 @@ pub fn factory(mut load_data: LoadData, return } "crash" => panic!("Loading the about:crash URL."), - "failure" | "not-found" => { - let mut path = resources_dir_path(); - let file_name = non_relative_scheme_data.to_owned() + ".html"; - path.push(&file_name); - assert!(path.exists()); - load_data.url = Url::from_file_path(&*path).unwrap(); - } + "failure" | "not-found" => + url_from_non_relative_scheme(&mut load_data, &(non_relative_scheme_data.to_owned() + ".html")), + "sslfail" => url_from_non_relative_scheme(&mut load_data, "badcert.html"), _ => { send_error(load_data.url, NetworkError::Internal("Unknown about: URL.".to_owned()), start_chan); return diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json index 1cadcfe1765..0c5279fc574 100644 --- a/tests/wpt/mozilla/meta/MANIFEST.json +++ b/tests/wpt/mozilla/meta/MANIFEST.json @@ -5779,6 +5779,18 @@ "url": "/_mozilla/mozilla/iframe/resize_after_load.html" } ], + "mozilla/sslfail.html": [ + { + "path": "mozilla/sslfail.html", + "references": [ + [ + "/_mozilla/mozilla/sslfail-ref.html", + "==" + ] + ], + "url": "/_mozilla/mozilla/sslfail.html" + } + ], "mozilla/webgl/clearcolor.html": [ { "path": "mozilla/webgl/clearcolor.html", @@ -12441,6 +12453,18 @@ "url": "/_mozilla/mozilla/iframe/resize_after_load.html" } ], + "mozilla/sslfail.html": [ + { + "path": "mozilla/sslfail.html", + "references": [ + [ + "/_mozilla/mozilla/sslfail-ref.html", + "==" + ] + ], + "url": "/_mozilla/mozilla/sslfail.html" + } + ], "mozilla/webgl/clearcolor.html": [ { "path": "mozilla/webgl/clearcolor.html", diff --git a/tests/wpt/mozilla/tests/mozilla/sslfail-ref.html b/tests/wpt/mozilla/tests/mozilla/sslfail-ref.html new file mode 100644 index 00000000000..4d371a86886 --- /dev/null +++ b/tests/wpt/mozilla/tests/mozilla/sslfail-ref.html @@ -0,0 +1,9 @@ + + + + SSL Failure Reference + + + + + diff --git a/tests/wpt/mozilla/tests/mozilla/sslfail.html b/tests/wpt/mozilla/tests/mozilla/sslfail.html new file mode 100644 index 00000000000..25ae241beff --- /dev/null +++ b/tests/wpt/mozilla/tests/mozilla/sslfail.html @@ -0,0 +1,10 @@ + + + + SSL Failure + + + + + +