Index: third_party/WebKit/LayoutTests/external/wpt/content-security-policy/media-src/media-src-redir-bug.sub.html |
diff --git a/third_party/WebKit/LayoutTests/external/wpt/content-security-policy/media-src/media-src-redir-bug.sub.html b/third_party/WebKit/LayoutTests/external/wpt/content-security-policy/media-src/media-src-redir-bug.sub.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b83511930416abde6d35f7d7ec6348a315d62d91 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/external/wpt/content-security-policy/media-src/media-src-redir-bug.sub.html |
@@ -0,0 +1,66 @@ |
+<!DOCTYPE HTML> |
+<html> |
+<head> |
+ <title>Video element src attribute must match src list - positive test</title> |
+ <script src='/resources/testharness.js'></script> |
+ <script src='/resources/testharnessreport.js'></script> |
+</head> |
+<body> |
+ <h1>Video element in media-src list - redirect test</h1> |
+ <div id='log'></div> |
+ |
+ <p>This test tests a buggy interaction in Chrome 46. Two hosts (self and www2) are both allowed |
+ as media-src, but only one (self) is allowed for connect-src. If a video src starts on |
+ an allowed host (self), and is redirected to another allowed media-src host, it should succeed. But a bug |
+ causes the redirect to be done in a fetch context to which connect-src is being applied instead, so |
+ the load is blocked. (This test passes in Firefox 45, modulo an event listener not firing.)</p> |
+ |
+ <script> |
+ var src_test = async_test("In-policy async video src"); |
+ var src_redir_test = async_test("in-policy async video src w/redir") |
+ var source_test = async_test("In-policy async video source element"); |
+ var source_redir_test = async_test("In-policy async video source element w/redir"); |
+ |
+ function media_loaded(t) { |
+ t.done(); |
+ } |
+ |
+ function media_error_handler(t) { |
+ t.step( function () { |
+ assert_unreached("Media error handler shouldn't be triggered for allowed domain."); |
+ }); |
+ t.done(); |
+ } |
+ </script> |
+ |
+ <video id="videoObject" width="320" height="240" controls |
+ onloadeddata="media_loaded(source_test)"> |
+ <source id="videoSourceObject" |
+ type="video/mp4" |
+ onerror="media_error_handler(source_test)" |
+ src="http://www2.{{host}}:{{ports[http][0]}}/media/white.mp4"> |
+ </video> |
+ |
+ <video id="videoObject2" width="320" height="240" controls |
+ onerror="media_error_handler(src_test)" |
+ onloadeddata="media_loaded(src_test)" |
+ src="http://www2.{{host}}:{{ports[http][0]}}/media/white.mp4"> |
+ |
+ <video id="videoObject3" width="320" height="240" controls |
+ onloadeddata="media_loaded(source_redir_test)"> |
+ <source id="videoSourceObject" |
+ type="video/mp4" |
+ onerror="media_error_handler(source_test)" |
+ src="/common/redirect.py?location=http://www2.{{host}}:{{ports[http][0]}}/media/white.mp4"> |
+ </video> |
+ |
+ <video id="videoObject2" width="320" height="240" controls |
+ onerror="media_error_handler(src_redir_test)" |
+ onloadeddata="media_loaded(src_redir_test)" |
+ src="/common/redirect.py?location=http://www2.{{host}}:{{ports[http][0]}}/media/white.mp4"> |
+ |
+ <script async defer src="../support/checkReport.sub.js?reportExists=false"> |
+ </script> |
+ |
+</body> |
+</html> |