diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2015-11-25 01:49:26 +0530 |
---|---|---|
committer | bors-servo <lbergstrom+bors@mozilla.com> | 2015-11-25 01:49:26 +0530 |
commit | ed6a3f5022ebfa364595b91d68b73e6ff60a4954 (patch) | |
tree | acd8229d7a231d6047c045d91f8514eaea7e7002 | |
parent | e31478cc3df10668ae3e31cb26d55aa5ffb2d7d1 (diff) | |
parent | af705a6faf19235b55e722fb85e240e36e7ad686 (diff) | |
download | servo-ed6a3f5022ebfa364595b91d68b73e6ff60a4954.tar.gz servo-ed6a3f5022ebfa364595b91d68b73e6ff60a4954.zip |
Auto merge of #8609 - KiChjang:file-loader-headers, r=KiChjang
Add content_type to metadata in file_loader
Fixes #4212.
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8609)
<!-- Reviewable:end -->
-rw-r--r-- | components/net/Cargo.toml | 1 | ||||
-rw-r--r-- | components/net/file_loader.rs | 9 | ||||
-rw-r--r-- | components/net/lib.rs | 1 | ||||
-rw-r--r-- | components/servo/Cargo.lock | 9 | ||||
-rw-r--r-- | ports/cef/Cargo.lock | 9 | ||||
-rw-r--r-- | ports/gonk/Cargo.lock | 9 |
6 files changed, 36 insertions, 2 deletions
diff --git a/components/net/Cargo.toml b/components/net/Cargo.toml index 9aa13502744..9d3e91631a6 100644 --- a/components/net/Cargo.toml +++ b/components/net/Cargo.toml @@ -44,6 +44,7 @@ rustc-serialize = "0.3" cookie = "0.1" regex = "0.1.14" regex_macros = "0.1.8" +mime_guess = "1.1.1" flate2 = "0.2.0" uuid = "0.1.16" euclid = {version = "0.3", features = ["plugins"]} diff --git a/components/net/file_loader.rs b/components/net/file_loader.rs index a4348049d78..1519ec31b2d 100644 --- a/components/net/file_loader.rs +++ b/components/net/file_loader.rs @@ -3,6 +3,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use mime_classifier::MIMEClassifier; +use mime_guess::guess_mime_type; use net_traits::ProgressMsg::{Done, Payload}; use net_traits::{LoadConsumer, LoadData, Metadata}; use resource_task::{CancellationListener, ProgressSender}; @@ -70,7 +71,9 @@ pub fn factory(load_data: LoadData, } match read_block(reader) { Ok(ReadStatus::Partial(buf)) => { - let metadata = Metadata::default(url); + let mut metadata = Metadata::default(url); + let mime_type = guess_mime_type(file_path.as_path()); + metadata.set_content_type(Some(&mime_type)); let progress_chan = start_sending_sniffed(senders, metadata, classifier, &buf); progress_chan.send(Payload(buf)).unwrap(); @@ -83,7 +86,9 @@ pub fn factory(load_data: LoadData, } } Ok(ReadStatus::EOF) => { - let metadata = Metadata::default(url); + let mut metadata = Metadata::default(url); + let mime_type = guess_mime_type(file_path.as_path()); + metadata.set_content_type(Some(&mime_type)); if let Ok(chan) = start_sending_sniffed_opt(senders, metadata, classifier, diff --git a/components/net/lib.rs b/components/net/lib.rs index 514be731f77..3fe4fba3d2c 100644 --- a/components/net/lib.rs +++ b/components/net/lib.rs @@ -20,6 +20,7 @@ extern crate flate2; extern crate brotli; extern crate hyper; extern crate ipc_channel; +extern crate mime_guess; extern crate msg; extern crate net_traits; extern crate openssl; diff --git a/components/servo/Cargo.lock b/components/servo/Cargo.lock index b95310c217a..4a2e4756464 100644 --- a/components/servo/Cargo.lock +++ b/components/servo/Cargo.lock @@ -1137,6 +1137,14 @@ dependencies = [ ] [[package]] +name = "mime_guess" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "mime 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] name = "miniz-sys" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1199,6 +1207,7 @@ dependencies = [ "hyper 0.6.15 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.1.0 (git+https://github.com/pcwalton/ipc-channel)", "log 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "mime_guess 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", "net_traits 0.0.1", "openssl 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/ports/cef/Cargo.lock b/ports/cef/Cargo.lock index dc3d6efdced..69e9e27438e 100644 --- a/ports/cef/Cargo.lock +++ b/ports/cef/Cargo.lock @@ -1086,6 +1086,14 @@ dependencies = [ ] [[package]] +name = "mime_guess" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "mime 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] name = "miniz-sys" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1148,6 +1156,7 @@ dependencies = [ "hyper 0.6.15 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.1.0 (git+https://github.com/pcwalton/ipc-channel)", "log 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "mime_guess 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", "net_traits 0.0.1", "openssl 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/ports/gonk/Cargo.lock b/ports/gonk/Cargo.lock index d77c6c10ed5..61b6e4167fe 100644 --- a/ports/gonk/Cargo.lock +++ b/ports/gonk/Cargo.lock @@ -1066,6 +1066,14 @@ dependencies = [ ] [[package]] +name = "mime_guess" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "mime 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] name = "miniz-sys" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1128,6 +1136,7 @@ dependencies = [ "hyper 0.6.15 (registry+https://github.com/rust-lang/crates.io-index)", "ipc-channel 0.1.0 (git+https://github.com/pcwalton/ipc-channel)", "log 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "mime_guess 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "msg 0.0.1", "net_traits 0.0.1", "openssl 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", |