diff options
Diffstat (limited to 'testing/web-platform/tests/mixed-content/tentative')
7 files changed, 208 insertions, 0 deletions
diff --git a/testing/web-platform/tests/mixed-content/tentative/autoupgrades/audio-upgrade.https.sub.html b/testing/web-platform/tests/mixed-content/tentative/autoupgrades/audio-upgrade.https.sub.html new file mode 100644 index 0000000000..4aeb183e3d --- /dev/null +++ b/testing/web-platform/tests/mixed-content/tentative/autoupgrades/audio-upgrade.https.sub.html @@ -0,0 +1,40 @@ +<!DOCTYPE html> +<html> +<head> +<title>Autoupgrade mixed content: Audio.</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/common/get-host-info.sub.js"></script> + +</head> +<body> + <script> + async_test(t => assert_audio_loads(t), "Audio autoupgraded"); + + function assert_audio_loads(test) { + // Since autoupgrades don't upgrade custom ports, we use the https port with an HTTP scheme. A successful autoupgrade will result in the right URL loading (and no autoupgrade will result in failure). + var url = new URL("http://{{host}}:{{ports[https][0]}}/mixed-content/tentative/resources/test.wav") + var i = document.createElement('audio'); + i.oncanplaythrough = test.step_func_done(_ => { + assert_equals(i.duration, 1, "Length"); + }); + i.onerror = test.unreached_func("Audio should load successfully from " + url); + i.src = url; + } + // Test the same just with another host + async_test(t => assert_other_host_audio_loads(t), "Audio of other host autoupgraded"); + + function assert_other_host_audio_loads(test) { + // Since autoupgrades don't upgrade custom ports, we use the https port with an HTTP scheme. A successful autoupgrade will result in the right URL loading (and no autoupgrade will result in failure). + var otherHost = get_host_info().HTTP_NOTSAMESITE_ORIGIN.slice(0,-4); // cut of http port + var url = new URL( otherHost + "{{ports[https][0]}}/mixed-content/tentative/resources/test.wav") + var i = document.createElement('audio'); + i.oncanplaythrough = test.step_func_done(_ => { + assert_equals(i.duration, 1, "Length of other host audio is correct"); + }); + i.onerror = test.unreached_func("Audio of other host should load successfully from " + url); + i.src = url; + } +</script> +</body> +</html> diff --git a/testing/web-platform/tests/mixed-content/tentative/autoupgrades/image-upgrade.https.sub.html b/testing/web-platform/tests/mixed-content/tentative/autoupgrades/image-upgrade.https.sub.html new file mode 100644 index 0000000000..d63a71026a --- /dev/null +++ b/testing/web-platform/tests/mixed-content/tentative/autoupgrades/image-upgrade.https.sub.html @@ -0,0 +1,43 @@ +<!DOCTYPE html> +<html> +<head> +<title>Autoupgrade mixed content: Optionally Blockable.</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/common/get-host-info.sub.js"></script> + +</head> +<body> + <script> + async_test(t => assert_image_loads(t), "Image autoupgraded"); + + function assert_image_loads(test) { + // Since autoupgrades don't upgrade custom ports, we use the https port with an HTTP scheme. A successful autoupgrade will result in the right URL loading (and no autoupgrade will result in failure). + var url = new URL("http://{{host}}:{{ports[https][0]}}/mixed-content/tentative/resources/pass.png") + var i = document.createElement('img'); + i.onload = test.step_func_done(_ => { + assert_equals(i.naturalHeight, 64, "Height."); + assert_equals(i.naturalWidth, 168, "Width."); + }); + i.onerror = test.unreached_func("Image should load successfully from " + url); + i.src = url; + } + + // Test the same just with another host + async_test(t => assert_other_host_image_loads(t), "Image of other host autoupgraded"); + + function assert_other_host_image_loads(test) { + // Since autoupgrades don't upgrade custom ports, we use the https port with an HTTP scheme. A successful autoupgrade will result in the right URL loading (and no autoupgrade will result in failure). + var otherHost = get_host_info().HTTP_NOTSAMESITE_ORIGIN.slice(0,-4); // cut of http port + var url = new URL( otherHost + "{{ports[https][0]}}/mixed-content/tentative/resources/pass.png") + var i = document.createElement('img'); + i.onload = test.step_func_done(_ => { + assert_equals(i.naturalHeight, 64, "Height."); + assert_equals(i.naturalWidth, 168, "Width."); + }); + i.onerror = test.unreached_func("image of other host should load successfully from " + url); + i.src = url; + } +</script> +</body> +</html> diff --git a/testing/web-platform/tests/mixed-content/tentative/autoupgrades/mixed-content-cors.https.sub.html b/testing/web-platform/tests/mixed-content/tentative/autoupgrades/mixed-content-cors.https.sub.html new file mode 100644 index 0000000000..eb7b443df3 --- /dev/null +++ b/testing/web-platform/tests/mixed-content/tentative/autoupgrades/mixed-content-cors.https.sub.html @@ -0,0 +1,84 @@ +<!DOCTYPE html> +<html> + <head> + <title>Test mixed content autoupgrade behavior for CORS request</title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/common/get-host-info.sub.js"></script> + </head> + <body> + <script> + // Test that request with CORS get upgraded for audio elements + async_test( + (t) => assert_other_host_audio_loads(t), + "Cross-Origin audio should get upgraded even if CORS is set" + ); + + function assert_other_host_audio_loads(test) { + // Since autoupgrades don't upgrade custom ports, we use the https port with an HTTP scheme. A successful autoupgrade will result in the right URL loading (and no autoupgrade will result in failure). + var otherHost = get_host_info().HTTP_NOTSAMESITE_ORIGIN.slice(0, -4); // cut of http port + var url = + otherHost + + "{{ports[https][0]}}/mixed-content/tentative/resources/test.wav?pipe=header(Access-Control-Allow-Origin,*)"; + var i = document.createElement("audio"); + i.oncanplaythrough = test.step_func_done((_) => { + assert_equals(i.duration, 1, "Length of other host audio is correct"); + }); + i.onerror = test.unreached_func( + "Audio of other host should load successfully from " + url + ); + i.crossOrigin = "anonymous"; + i.src = url; + } + + // Test that request with CORS get upgraded for image elements + async_test( + (t) => assert_other_host_image_loads(t), + "Cross-Origin image should get upgraded even if CORS is set" + ); + + function assert_other_host_image_loads(test) { + // Since autoupgrades don't upgrade custom ports, we use the https port with an HTTP scheme. A successful autoupgrade will result in the right URL loading (and no autoupgrade will result in failure). + var otherHost = get_host_info().HTTP_NOTSAMESITE_ORIGIN.slice(0, -4); // cut of http port + var url = new URL( + otherHost + + "{{ports[https][0]}}/mixed-content/tentative/resources/pass.png?pipe=header(Access-Control-Allow-Origin,*)" + ); + var i = document.createElement("img"); + i.onload = test.step_func_done((_) => { + assert_equals(i.naturalHeight, 64, "Height."); + assert_equals(i.naturalWidth, 168, "Width."); + }); + i.crossOrigin = "anonymous"; + i.onerror = test.unreached_func( + "image of other host should load successfully from " + url + ); + i.src = url; + } + + // Test that request with CORS get upgraded for video elements + async_test( + (t) => assert_other_host_video_loads(t), + "Cross-Origin video should get upgraded even if CORS is set" + ); + + function assert_other_host_video_loads(test) { + // Since autoupgrades don't upgrade custom ports, we use the https port with an HTTP scheme. A successful autoupgrade will result in the right URL loading (and no autoupgrade will result in failure). + var otherHost = get_host_info().HTTP_NOTSAMESITE_ORIGIN.slice(0, -4); // cut of http port + var url = new URL( + otherHost + + "{{ports[https][0]}}/mixed-content/tentative/resources/test.ogv?pipe=header(Access-Control-Allow-Origin,*)" + ); + var i = document.createElement("video"); + i.oncanplaythrough = test.step_func_done((_) => { + assert_equals(Math.floor(i.duration), 300, "Length. Other host"); + }); + i.crossOrigin = "anonymous"; + i.onerror = test.unreached_func( + "Video of other host should load successfully from " + url + ); + i.src = url; + } + </script> + </body> +</html> diff --git a/testing/web-platform/tests/mixed-content/tentative/autoupgrades/video-upgrade.https.sub.html b/testing/web-platform/tests/mixed-content/tentative/autoupgrades/video-upgrade.https.sub.html new file mode 100644 index 0000000000..ea2d07309c --- /dev/null +++ b/testing/web-platform/tests/mixed-content/tentative/autoupgrades/video-upgrade.https.sub.html @@ -0,0 +1,41 @@ +<!DOCTYPE html> +<html> +<head> +<title>Autoupgrade mixed content: Video.</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/common/get-host-info.sub.js"></script> + +</head> +<body> + <script> + async_test(t => assert_video_loads(t), "Video autoupgraded"); + + function assert_video_loads(test) { + // Since autoupgrades don't upgrade custom ports, we use the https port with an HTTP scheme. A successful autoupgrade will result in the right URL loading (and no autoupgrade will result in failure). + var url = new URL("http://{{host}}:{{ports[https][0]}}/mixed-content/tentative/resources/test.ogv") + var i = document.createElement('video'); + i.oncanplaythrough = test.step_func_done(_ => { + assert_equals(Math.floor(i.duration), 300, "Length."); + }); + i.onerror = test.unreached_func("Video should load successfully from " + url); + i.src = url; + } + + // Test the same just with another host + async_test(t => assert_other_host_video_loads(t), "Video of other host autoupgraded"); + + function assert_other_host_video_loads(test) { + // Since autoupgrades don't upgrade custom ports, we use the https port with an HTTP scheme. A successful autoupgrade will result in the right URL loading (and no autoupgrade will result in failure). + var otherHost = get_host_info().HTTP_NOTSAMESITE_ORIGIN.slice(0,-4); // cut of http port + var url = new URL( otherHost + "{{ports[https][0]}}/mixed-content/tentative/resources/test.ogv") + var i = document.createElement('video'); + i.oncanplaythrough = test.step_func_done(_ => { + assert_equals(Math.floor(i.duration), 300, "Length. Other host"); + }); + i.onerror = test.unreached_func("Video of other host should load successfully from " + url); + i.src = url; + } +</script> +</body> +</html> diff --git a/testing/web-platform/tests/mixed-content/tentative/resources/pass.png b/testing/web-platform/tests/mixed-content/tentative/resources/pass.png Binary files differnew file mode 100644 index 0000000000..2fa1e0ac06 --- /dev/null +++ b/testing/web-platform/tests/mixed-content/tentative/resources/pass.png diff --git a/testing/web-platform/tests/mixed-content/tentative/resources/test.ogv b/testing/web-platform/tests/mixed-content/tentative/resources/test.ogv Binary files differnew file mode 100644 index 0000000000..0f83996e5d --- /dev/null +++ b/testing/web-platform/tests/mixed-content/tentative/resources/test.ogv diff --git a/testing/web-platform/tests/mixed-content/tentative/resources/test.wav b/testing/web-platform/tests/mixed-content/tentative/resources/test.wav Binary files differnew file mode 100644 index 0000000000..85dc1ea904 --- /dev/null +++ b/testing/web-platform/tests/mixed-content/tentative/resources/test.wav |