aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/net/hsts.rs13
-rw-r--r--components/net/resource_thread.rs8
-rw-r--r--tests/unit/net/hsts.rs4
3 files changed, 11 insertions, 14 deletions
diff --git a/components/net/hsts.rs b/components/net/hsts.rs
index 946bb19c294..70c301a2ed8 100644
--- a/components/net/hsts.rs
+++ b/components/net/hsts.rs
@@ -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();
diff --git a/components/net/resource_thread.rs b/components/net/resource_thread.rs
index e7b1b58e9db..30125e2f983 100644
--- a/components/net/resource_thread.rs
+++ b/components/net/resource_thread.rs
@@ -10,7 +10,7 @@ use cookie_storage::CookieStorage;
use data_loader;
use devtools_traits::{DevtoolsControlMsg};
use file_loader;
-use hsts::{HSTSList, preload_hsts_domains};
+use hsts::HSTSList;
use http_loader::{self, Connector, create_http_connector, HttpState};
use hyper::client::pool::Pool;
use hyper::header::{ContentType, Header, SetCookie};
@@ -148,11 +148,7 @@ fn start_sending_opt(start_chan: LoadConsumer, metadata: Metadata) -> Result<Pro
/// Create a ResourceThread
pub fn new_resource_thread(user_agent: String,
devtools_chan: Option<Sender<DevtoolsControlMsg>>) -> ResourceThread {
- let hsts_preload = match preload_hsts_domains() {
- Some(list) => list,
- None => HSTSList::new()
- };
-
+ let hsts_preload = HSTSList::from_servo_preload();
let (setup_chan, setup_port) = ipc::channel().unwrap();
let setup_chan_clone = setup_chan.clone();
spawn_named("ResourceManager".to_owned(), move || {
diff --git a/tests/unit/net/hsts.rs b/tests/unit/net/hsts.rs
index 95eeaffcecb..76768972f2f 100644
--- a/tests/unit/net/hsts.rs
+++ b/tests/unit/net/hsts.rs
@@ -2,8 +2,8 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+use net::hsts::secure_url;
use net::hsts::{HSTSList, HSTSEntry};
-use net::hsts::{secure_url, preload_hsts_domains};
use net_traits::IncludeSubdomains;
use time;
use url::Url;
@@ -250,7 +250,7 @@ fn test_hsts_list_with_expired_entry_is_not_is_host_secure() {
#[test]
fn test_preload_hsts_domains_well_formed() {
- let hsts_list = preload_hsts_domains().unwrap();
+ let hsts_list = HSTSList::from_servo_preload();
assert!(!hsts_list.entries.is_empty());
}