diff --git a/components/net/fetch/methods.rs b/components/net/fetch/methods.rs index 0e066e918aa..ad7e86424e7 100644 --- a/components/net/fetch/methods.rs +++ b/components/net/fetch/methods.rs @@ -8,7 +8,7 @@ use data_loader::decode; use devtools_traits::DevtoolsControlMsg; use fetch::cors_cache::CORSCache; use filemanager_thread::{FileManager, UIProvider}; -use http_loader::{HttpState, set_default_accept_encoding, set_request_cookies}; +use http_loader::{HttpState, set_default_accept_encoding, set_default_accept_language, set_request_cookies}; use http_loader::{NetworkHttpRequestFactory, ReadResult, StreamedResponse, obtain_response, read_block}; use http_loader::{auth_from_cache, determine_request_referrer, set_cookies_from_headers}; use http_loader::{send_response_to_devtools, send_request_to_devtools, LoadErrorType}; @@ -120,9 +120,7 @@ pub fn fetch_with_cors_cache(request: Rc, } // Step 4 - if !request.headers.borrow().has::() { - request.headers.borrow_mut().set(AcceptLanguage(vec![qitem("en-US".parse().unwrap())])); - } + set_default_accept_language(&mut request.headers.borrow_mut()); // Step 5 // TODO: Figure out what a Priority object is diff --git a/components/net/http_loader.rs b/components/net/http_loader.rs index 0adf15b700e..6e05a83dbdc 100644 --- a/components/net/http_loader.rs +++ b/components/net/http_loader.rs @@ -413,7 +413,7 @@ fn set_default_accept(headers: &mut Headers) { } } -fn set_default_accept_language(headers: &mut Headers) { +pub fn set_default_accept_language(headers: &mut Headers) { if headers.has::() { return; } diff --git a/tests/unit/net/fetch.rs b/tests/unit/net/fetch.rs index bdffa9fc121..4d56668ad6e 100644 --- a/tests/unit/net/fetch.rs +++ b/tests/unit/net/fetch.rs @@ -12,7 +12,7 @@ use hyper::header::{Accept, AccessControlAllowCredentials, AccessControlAllowHea use hyper::header::{AcceptEncoding, AcceptLanguage, AccessControlAllowMethods, AccessControlMaxAge}; use hyper::header::{AccessControlRequestHeaders, AccessControlRequestMethod, Date, UserAgent}; use hyper::header::{CacheControl, ContentLanguage, ContentLength, ContentType, Expires, LastModified}; -use hyper::header::{Encoding, Location, Pragma, SetCookie, qitem}; +use hyper::header::{Encoding, Location, Pragma, Quality, QualityItem, SetCookie, qitem}; use hyper::header::{Headers, Host, HttpDate, Referer as HyperReferer}; use hyper::method::Method; use hyper::mime::{Mime, SubLevel, TopLevel}; @@ -776,7 +776,12 @@ fn test_fetch_with_devtools() { let mut en_us: LanguageTag = Default::default(); en_us.language = Some("en".to_owned()); en_us.region = Some("US".to_owned()); - headers.set(AcceptLanguage(vec![qitem(en_us)])); + let mut en: LanguageTag = Default::default(); + en.language = Some("en".to_owned()); + headers.set(AcceptLanguage(vec![ + qitem(en_us), + QualityItem::new(en, Quality(500)), + ])); headers.set(UserAgent(DEFAULT_USER_AGENT.to_owned()));