summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/shape-detection/shapedetection-cross-origin.sub.https.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/shape-detection/shapedetection-cross-origin.sub.https.html')
-rw-r--r--testing/web-platform/tests/shape-detection/shapedetection-cross-origin.sub.https.html66
1 files changed, 66 insertions, 0 deletions
diff --git a/testing/web-platform/tests/shape-detection/shapedetection-cross-origin.sub.https.html b/testing/web-platform/tests/shape-detection/shapedetection-cross-origin.sub.https.html
new file mode 100644
index 0000000000..c4e3c3fec7
--- /dev/null
+++ b/testing/web-platform/tests/shape-detection/shapedetection-cross-origin.sub.https.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script>
+
+// cross-origin resources
+const IMAGE_URL =
+ "https://{{domains[www1]}}:{{ports[https][0]}}/images/green.png";
+const VIDEO_URL =
+ "https://{{domains[www1]}}:{{ports[https][0]}}/media/white.webm";
+
+const crossOriginTests =
+ [
+ {
+ createDetector: () => { return new FaceDetector(); },
+ detectorType: "FaceDetector"
+ },
+ {
+ createDetector: () => { return new BarcodeDetector(); },
+ detectorType: "BarcodeDetector"
+ },
+ {
+ createDetector: () => { return new TextDetector(); },
+ detectorType: "TextDetector"
+ }
+ ];
+
+for (let crossOriginTest of crossOriginTests) {
+
+ // Verifies that Detector rejects a cross-origin HTMLImageElement.
+ promise_test(async t => {
+ const img = new Image();
+ const imgWatcher = new EventWatcher(t, img, ["load", "error"]);
+ img.src = IMAGE_URL;
+ await imgWatcher.wait_for("load");
+ const detector = crossOriginTest.createDetector();
+ promise_rejects_dom(t, "SecurityError", detector.detect(img));
+ }, crossOriginTest.detectorType
+ + " should reject cross-origin HTMLImageElements with a SecurityError.");
+
+ // Verifies that Detector rejects a cross-origin ImageBitmap.
+ promise_test(async t => {
+ const img = new Image();
+ const imgWatcher = new EventWatcher(t, img, ["load", "error"]);
+ img.src = IMAGE_URL;
+ await imgWatcher.wait_for("load");
+ const imgBitmap = await createImageBitmap(img);
+ const detector = crossOriginTest.createDetector();
+ promise_rejects_dom(t, "SecurityError", detector.detect(imgBitmap));
+ }, crossOriginTest.detectorType
+ + " should reject cross-origin ImageBitmaps with a SecurityError.");
+
+ // Verifies that Detector rejects a cross-origin HTMLVideoElement.
+ promise_test(async t => {
+ const video = document.createElement('video');
+ const videoWatcher = new EventWatcher(t, video, ["loadeddata", "error"]);
+ video.src = VIDEO_URL;
+ await videoWatcher.wait_for("loadeddata");
+ const detector = crossOriginTest.createDetector();
+ promise_rejects_dom(t, "SecurityError", detector.detect(video));
+ }, crossOriginTest.detectorType
+ + " should reject cross-origin HTMLVideoElements with a SecurityError.");
+
+}
+
+</script> \ No newline at end of file