Refactor Servo HSTS file loading, hard-fail if can't load.

Use constructor pattern instead of separate utility function.

Instead of allowing the Servo HSTS file loading to silently fail, we
should expect that file to always exist and be formatted correctly.
This commit is contained in:
Corey Farwell 2016-04-17 12:25:17 -04:00
parent d3b8b6472b
commit faa3d8724b
3 changed files with 11 additions and 14 deletions

View file

@ -70,6 +70,13 @@ impl HSTSList {
.and_then(|c| decode(c).ok())
}
pub fn from_servo_preload() -> HSTSList {
let file_bytes = read_resource_file("hsts_preload.json")
.expect("Could not find Servo HSTS preload file");
HSTSList::from_preload(&file_bytes)
.expect("Servo HSTS preload file is invalid")
}
pub fn is_host_secure(&self, host: &str) -> bool {
// TODO - Should this be faster than O(n)? The HSTS list is only a few
// hundred or maybe thousand entries...
@ -114,12 +121,6 @@ impl HSTSList {
}
}
pub fn preload_hsts_domains() -> Option<HSTSList> {
read_resource_file("hsts_preload.json")
.ok()
.and_then(|bytes| HSTSList::from_preload(&bytes))
}
pub fn secure_url(url: &Url) -> Url {
if &*url.scheme == "http" {
let mut secure_url = url.clone();