aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2017-09-15 10:09:22 +0200
committerAnthony Ramine <n.oxyde@gmail.com>2017-09-19 14:26:10 +0200
commit7e835c351e44e7378784fdd4667cc151b3d602ae (patch)
treed6904d0f1511a52c5cec8d0bef7b4b85b47601dc
parentbd9486bbe2b82cd7afbff96a0df7d6fb9911545f (diff)
downloadservo-7e835c351e44e7378784fdd4667cc151b3d602ae.tar.gz
servo-7e835c351e44e7378784fdd4667cc151b3d602ae.zip
Handle invalid MIME types in HTMLMediaElement::CanPlayType
-rw-r--r--components/script/dom/htmlmediaelement.rs12
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/media-elements/mime-types/canPlayType.html.ini3
2 files changed, 9 insertions, 6 deletions
diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs
index ef96a876356..80afcf2a585 100644
--- a/components/script/dom/htmlmediaelement.rs
+++ b/components/script/dom/htmlmediaelement.rs
@@ -32,6 +32,7 @@ use html5ever::{LocalName, Prefix};
use ipc_channel::ipc;
use ipc_channel::router::ROUTER;
use microtask::{Microtask, MicrotaskRunnable};
+use mime::{Mime, SubLevel, TopLevel};
use net_traits::{FetchResponseListener, FetchMetadata, Metadata, NetworkError};
use net_traits::request::{CredentialsMode, Destination, RequestInit, Type as RequestType};
use network_listener::{NetworkListener, PreInvoke};
@@ -644,9 +645,14 @@ impl HTMLMediaElementMethods for HTMLMediaElement {
}
// https://html.spec.whatwg.org/multipage/#dom-navigator-canplaytype
- fn CanPlayType(&self, _type_: DOMString) -> CanPlayTypeResult {
- // TODO: application/octet-stream
- CanPlayTypeResult::Maybe
+ fn CanPlayType(&self, type_: DOMString) -> CanPlayTypeResult {
+ match type_.parse::<Mime>() {
+ Ok(Mime(TopLevel::Application, SubLevel::OctetStream, _)) |
+ Err(_) => {
+ CanPlayTypeResult::_empty
+ },
+ _ => CanPlayTypeResult::Maybe
+ }
}
// https://html.spec.whatwg.org/multipage/#dom-media-error
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/mime-types/canPlayType.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/mime-types/canPlayType.html.ini
index c5491bf470e..dc43bf6b602 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/mime-types/canPlayType.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/mime-types/canPlayType.html.ini
@@ -1,8 +1,5 @@
[canPlayType.html]
type: testharness
- [application/octet-stream]
- expected: FAIL
-
[video/x-new-fictional-format]
expected: FAIL