| Index: third_party/WebKit/LayoutTests/http/tests/media/mixed-range-response.html
|
| diff --git a/third_party/WebKit/LayoutTests/http/tests/media/mixed-range-response.html b/third_party/WebKit/LayoutTests/http/tests/media/mixed-range-response.html
|
| index e4fec3688df130dab3a18988851f36688422472c..f3a8c887b87ba153b806cc454f826d897d6ba944 100644
|
| --- a/third_party/WebKit/LayoutTests/http/tests/media/mixed-range-response.html
|
| +++ b/third_party/WebKit/LayoutTests/http/tests/media/mixed-range-response.html
|
| @@ -16,9 +16,11 @@
|
| // If the origin of 2. (mixed-range-response.php) and 6. (load-video.php) are
|
| // different, an error should occur.
|
|
|
| -function create_failure_audio_test(url) {
|
| +function create_failure_audio_test(url, crossOrigin) {
|
| return new Promise(function(resolve, reject) {
|
| var audio = document.createElement('audio');
|
| + if (crossOrigin)
|
| + audio.crossOrigin = crossOrigin;
|
| audio.oncanplay = function() {
|
| reject('canplay event should not be fired. url: ' + url);
|
| };
|
| @@ -28,9 +30,11 @@ function create_failure_audio_test(url) {
|
| });
|
| }
|
|
|
| -function create_success_audio_test(url) {
|
| +function create_success_audio_test(url, crossOrigin) {
|
| return new Promise(function(resolve, reject) {
|
| var audio = document.createElement('audio');
|
| + if (crossOrigin)
|
| + audio.crossOrigin = crossOrigin;
|
| audio.oncanplay = resolve;
|
| audio.onerror = function(e) {
|
| reject('error event should not be fired. url: ' + url);
|
| @@ -42,10 +46,75 @@ function create_success_audio_test(url) {
|
|
|
| var HOST_INFO = get_host_info();
|
| var MIX_RESPONSE_PHP_PATH = '/media/resources/mixed-range-response.php';
|
| +var REDIRECT_PHP_PATH = '/resources/redirect.php'
|
| var AUDIO_PATH = '/media/resources/load-video.php?' +
|
| 'name=../../../../media/content/silence.oga&type=audio/ogg';
|
|
|
| promise_test(function(t) {
|
| + return create_success_audio_test(
|
| + HOST_INFO['HTTP_ORIGIN'] + REDIRECT_PHP_PATH + '?url=' +
|
| + encodeURIComponent(HOST_INFO['HTTP_ORIGIN'] + AUDIO_PATH));
|
| + }, 'Redirect from same-origin to same-origin must succeed.');
|
| +
|
| +promise_test(function(t) {
|
| + return create_success_audio_test(
|
| + HOST_INFO['HTTP_ORIGIN'] + REDIRECT_PHP_PATH + '?url=' +
|
| + encodeURIComponent(HOST_INFO['HTTP_REMOTE_ORIGIN'] + AUDIO_PATH));
|
| + }, 'Redirect from same-origin to remote-origin must succeed.');
|
| +
|
| +promise_test(function(t) {
|
| + return create_failure_audio_test(
|
| + HOST_INFO['HTTP_REMOTE_ORIGIN'] + AUDIO_PATH ,
|
| + 'anonymous');
|
| + }, 'CORS-disallowed remote-origin with crossOrigin=anonymous must fail.');
|
| +
|
| +
|
| +promise_test(function(t) {
|
| + return create_success_audio_test(
|
| + HOST_INFO['HTTP_REMOTE_ORIGIN'] + AUDIO_PATH + '&cors_allow_origin=' + HOST_INFO['HTTP_ORIGIN'],
|
| + 'anonymous');
|
| + }, 'CORS-allowed remote-origin with crossOrigin=anonymous must succeed.');
|
| +
|
| +promise_test(function(t) {
|
| + return create_success_audio_test(
|
| + HOST_INFO['HTTP_ORIGIN'] + REDIRECT_PHP_PATH + '?url=' +
|
| + encodeURIComponent(HOST_INFO['HTTP_ORIGIN'] + AUDIO_PATH),
|
| + 'anonymous');
|
| + }, 'Redirect from same-origin to same-origin with crossOrigin=anonymous must succeed.');
|
| +
|
| +promise_test(function(t) {
|
| + return create_failure_audio_test(
|
| + HOST_INFO['HTTP_ORIGIN'] + REDIRECT_PHP_PATH + '?url=' +
|
| + encodeURIComponent(HOST_INFO['HTTP_REMOTE_ORIGIN'] + AUDIO_PATH),
|
| + 'anonymous');
|
| + }, 'Redirect from same-origin to CORS-disallowed remote-origin with crossOrigin=anonymous must fail.');
|
| +
|
| +promise_test(function(t) {
|
| + return create_success_audio_test(
|
| + HOST_INFO['HTTP_ORIGIN'] + REDIRECT_PHP_PATH + '?url=' +
|
| + encodeURIComponent(HOST_INFO['HTTP_REMOTE_ORIGIN'] + AUDIO_PATH +
|
| + '&cors_allow_origin=' + HOST_INFO['HTTP_ORIGIN']),
|
| + 'anonymous');
|
| + }, 'Redirect from same-origin to CORS-allowed remote-origin with crossOrigin=anonymous must succeed.');
|
| +
|
| +promise_test(function(t) {
|
| + return create_failure_audio_test(
|
| + HOST_INFO['HTTP_REMOTE_ORIGIN'] + REDIRECT_PHP_PATH + '?url=' +
|
| + encodeURIComponent(HOST_INFO['HTTP_REMOTE_ORIGIN'] + AUDIO_PATH +
|
| + '&cors_allow_origin=' + HOST_INFO['HTTP_ORIGIN']),
|
| + 'anonymous');
|
| + }, 'Redirect from CORS-disallowed remote-origin to CORS-allowed remote-origin with crossOrigin=anonymous must fail.');
|
| +
|
| +promise_test(function(t) {
|
| + return create_success_audio_test(
|
| + HOST_INFO['HTTP_REMOTE_ORIGIN'] + REDIRECT_PHP_PATH + '?url=' +
|
| + encodeURIComponent(HOST_INFO['HTTP_REMOTE_ORIGIN'] + AUDIO_PATH +
|
| + '&cors_allow_origin=' + HOST_INFO['HTTP_ORIGIN']) +
|
| + '&cors_allow_origin=' + HOST_INFO['HTTP_ORIGIN'],
|
| + 'anonymous');
|
| + }, 'Redirect from CORS-allowed remote-origin to CORS-allowed remote-origin with crossOrigin=anonymous must succeed.');
|
| +
|
| +promise_test(function(t) {
|
| return create_success_audio_test(
|
| HOST_INFO['HTTP_ORIGIN'] + MIX_RESPONSE_PHP_PATH + '?location=' +
|
| encodeURIComponent(HOST_INFO['HTTP_ORIGIN'] + AUDIO_PATH));
|
| @@ -69,5 +138,29 @@ promise_test(function(t) {
|
| encodeURIComponent(HOST_INFO['HTTP_REMOTE_ORIGIN'] + AUDIO_PATH));
|
| }, 'Mixing same remote-origin responses must succeed.');
|
|
|
| +promise_test(function(t) {
|
| + return create_success_audio_test(
|
| + HOST_INFO['HTTP_REMOTE_ORIGIN'] + MIX_RESPONSE_PHP_PATH + '?location=' +
|
| + encodeURIComponent(HOST_INFO['HTTP_REMOTE_ORIGIN'] + AUDIO_PATH +
|
| + '&cors_allow_origin=' + HOST_INFO['HTTP_ORIGIN']) +
|
| + '&cors_allow_origin=' + HOST_INFO['HTTP_ORIGIN'],
|
| + 'anonymous');
|
| + }, 'Mixing same CORS-allowed remote-origin responses with crossOrigin=anonymous must succeed.');
|
| +
|
| +promise_test(function(t) {
|
| + return create_success_audio_test(
|
| + HOST_INFO['HTTP_ORIGIN'] + MIX_RESPONSE_PHP_PATH + '?location=' +
|
| + encodeURIComponent(HOST_INFO['HTTP_REMOTE_ORIGIN'] + AUDIO_PATH +
|
| + '&cors_allow_origin=' + HOST_INFO['HTTP_ORIGIN']),
|
| + 'anonymous');
|
| + }, 'Mixing same-origin response and CORS-allowed remote-origin response with crossOrigin=anonymous must succeed.');
|
| +
|
| +promise_test(function(t) {
|
| + return create_success_audio_test(
|
| + HOST_INFO['HTTP_REMOTE_ORIGIN'] + MIX_RESPONSE_PHP_PATH + '?location=' +
|
| + encodeURIComponent(HOST_INFO['HTTP_ORIGIN'] + AUDIO_PATH + '&cors_allow_origin=*') +
|
| + '&cors_allow_origin=' + HOST_INFO['HTTP_ORIGIN'],
|
| + 'anonymous');
|
| + }, 'Mixing CORS-allowed remote-origin response and same-origin response with crossOrigin=anonymous must succeed.');
|
| </script>
|
| </body>
|
|
|