aboutsummaryrefslogtreecommitdiffstats
path: root/components/net/file_loader.rs
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2015-11-26 22:47:03 +0530
committerbors-servo <lbergstrom+bors@mozilla.com>2015-11-26 22:47:03 +0530
commit831979d6a7e6fc615434a6585710b2becb7dbf42 (patch)
tree179677058d57f06991fd82879108df5226ed30ad /components/net/file_loader.rs
parent5e7306bf1965988551cafe6a27baab13eb927bbe (diff)
parentb17ca9bdc1dd16706f24a27807f34a48fd2e9735 (diff)
downloadservo-831979d6a7e6fc615434a6585710b2becb7dbf42.tar.gz
servo-831979d6a7e6fc615434a6585710b2becb7dbf42.zip
Auto merge of #8650 - Wafflespeanut:about-404, r=Wafflespeanut
Redirect to an error page on 404! fixes #7658 <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8650) <!-- Reviewable:end -->
Diffstat (limited to 'components/net/file_loader.rs')
-rw-r--r--components/net/file_loader.rs11
1 files changed, 9 insertions, 2 deletions
diff --git a/components/net/file_loader.rs b/components/net/file_loader.rs
index 1519ec31b2d..8b0a287c4a1 100644
--- a/components/net/file_loader.rs
+++ b/components/net/file_loader.rs
@@ -2,6 +2,7 @@
* 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 about_loader;
use mime_classifier::MIMEClassifier;
use mime_guess::guess_mime_type;
use net_traits::ProgressMsg::{Done, Payload};
@@ -14,6 +15,7 @@ use std::fs::File;
use std::io::Read;
use std::path::PathBuf;
use std::sync::Arc;
+use url::Url;
use util::task::spawn_named;
static READ_SIZE: usize = 8192;
@@ -101,8 +103,13 @@ pub fn factory(load_data: LoadData,
}
};
}
- Err(e) => {
- send_error(url, e.description().to_owned(), senders);
+ Err(_) => {
+ // this should be one of the three errors listed in
+ // http://doc.rust-lang.org/std/fs/struct.OpenOptions.html#method.open
+ // but, we'll go for a "file not found!"
+ let url = Url::parse("about:not-found").unwrap();
+ let load_data_404 = LoadData::new(url, None);
+ about_loader::factory(load_data_404, senders, classifier, cancel_listener)
}
}
}