aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
Diffstat (limited to 'components/script')
-rw-r--r--components/script/dom/servohtmlparser.rs9
1 files changed, 5 insertions, 4 deletions
diff --git a/components/script/dom/servohtmlparser.rs b/components/script/dom/servohtmlparser.rs
index 75d6a5e502f..884ac6c8653 100644
--- a/components/script/dom/servohtmlparser.rs
+++ b/components/script/dom/servohtmlparser.rs
@@ -81,11 +81,11 @@ impl ParserContext {
impl AsyncResponseListener for ParserContext {
fn headers_available(&mut self, meta_result: Result<Metadata, NetworkError>) {
- let mut is_ssl_error = false;
+ let mut ssl_error = None;
let metadata = match meta_result {
Ok(meta) => Some(meta),
- Err(NetworkError::SslValidation(url)) => {
- is_ssl_error = true;
+ Err(NetworkError::SslValidation(url, reason)) => {
+ ssl_error = Some(reason);
let mut meta = Metadata::default(url);
let mime: Option<Mime> = "text/html".parse().ok();
meta.set_content_type(mime.as_ref());
@@ -124,10 +124,11 @@ impl AsyncResponseListener for ParserContext {
parser.set_plaintext_state();
},
Some(ContentType(Mime(TopLevel::Text, SubLevel::Html, _))) => { // Handle text/html
- if is_ssl_error {
+ if let Some(reason) = ssl_error {
self.is_synthesized_document = true;
let page_bytes = read_resource_file("badcert.html").unwrap();
let page = String::from_utf8(page_bytes).unwrap();
+ let page = page.replace("${reason}", &reason);
parser.pending_input().borrow_mut().push(page);
parser.parse_sync();
}