aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2015-11-25 01:49:26 +0530
committerbors-servo <lbergstrom+bors@mozilla.com>2015-11-25 01:49:26 +0530
commited6a3f5022ebfa364595b91d68b73e6ff60a4954 (patch)
treeacd8229d7a231d6047c045d91f8514eaea7e7002
parente31478cc3df10668ae3e31cb26d55aa5ffb2d7d1 (diff)
parentaf705a6faf19235b55e722fb85e240e36e7ad686 (diff)
downloadservo-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.toml1
-rw-r--r--components/net/file_loader.rs9
-rw-r--r--components/net/lib.rs1
-rw-r--r--components/servo/Cargo.lock9
-rw-r--r--ports/cef/Cargo.lock9
-rw-r--r--ports/gonk/Cargo.lock9
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)",