Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(243)

Side by Side Diff: third_party/WebKit/LayoutTests/http/tests/shapedetection/shapedetection-cross-origin.html

Issue 2455973007: FaceDetection: add support for <video> input (Closed)
Patch Set: xianglu@ comments Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <script src=../../../../resources/testharness.js></script> 2 <script src=../../../../resources/testharness.js></script>
3 <script src=../../../../resources/testharnessreport.js></script> 3 <script src=../../../../resources/testharnessreport.js></script>
4 <script> 4 <script>
5 5
6 // http:// resources are considered cross-origin from the current file://. 6 // http:// resources are considered cross-origin from the current file://.
7 const IMAGE_URL = "http://localhost:8080/security/resources/abe.png"; 7 const IMAGE_URL = "http://localhost:8080/security/resources/abe.png";
8 const VIDEO_URL = "http://localhost:8080/imported/wpt/media/white.webm";
8 9
9 // TODO(xianglu): Move this helper function to a shared location for reuse. 10 // Returns a Promise that is resolve()d if detect() is rejected. Needs an input
10 function detectFaceOnImageElementAndExpectError(imageUrl) { 11 // |element| (e.g. an HTMLImageElement or HTMLVideoElement) and a |url| to load.
12 function detectFaceOnElementAndExpectError(element, url) {
11 return new Promise(function(resolve, reject) { 13 return new Promise(function(resolve, reject) {
12 var image = new Image();
13 var tryFaceDetection = function() { 14 var tryFaceDetection = function() {
14 var faceDetector = new FaceDetector(); 15 var faceDetector = new FaceDetector();
15 faceDetector.detect(image) 16 faceDetector.detect(element)
16 .then(faceDetectionResult => { 17 .then(faceDetectionResult => {
17 reject("Promise should have been rejected."); 18 reject("Promise should have been rejected.");
18 }) 19 })
19 .catch(error => { 20 .catch(error => {
20 resolve(error); 21 resolve(error);
21 }); 22 });
22 }; 23 };
23 image.onload = tryFaceDetection; 24 element.onload = tryFaceDetection;
24 image.onerror = tryFaceDetection; 25 element.onerror = tryFaceDetection;
25 image.src = imageUrl; 26 element.src = url;
26 }); 27 });
27 } 28 }
28 29
29 function detectFaceOnImageBitmapAndExpectError(imageUrl) { 30 function detectFaceOnImageBitmapAndExpectError(imageUrl) {
30 return new Promise(function(resolve, reject) { 31 return new Promise(function(resolve, reject) {
31 var image = new Image(); 32 var image = new Image();
32 image.onload = function() { 33 image.onload = function() {
33 createImageBitmap(image) 34 createImageBitmap(image)
34 .then(imageBitmap => { 35 .then(imageBitmap => {
35 var faceDetector = new FaceDetector(); 36 var faceDetector = new FaceDetector();
36 return faceDetector.detect(imageBitmap); 37 return faceDetector.detect(imageBitmap);
37 }) 38 })
38 .then(faceDetectionResult => { 39 .then(faceDetectionResult => {
39 reject("Promise should have been rejected."); 40 reject("Promise should have been rejected.");
40 }) 41 })
41 .catch(error => { 42 .catch(error => {
42 resolve(error); 43 resolve(error);
43 }); 44 });
44 }; 45 };
45 image.onerror = () => {}; // Explicitly ignore expected error events. 46 image.onerror = () => {}; // Explicitly ignore expected error events.
xianglu 2016/10/31 23:07:52 For HTMLImageElement I remember only onerror() eve
mcasas 2016/11/01 01:10:58 Acknowledged.
46 image.src = imageUrl; 47 image.src = imageUrl;
47 }); 48 });
48 } 49 }
49 50
50 // Verifies that FaceDetector rejects a cross-origin HTMLImageElement. 51 // Verifies that FaceDetector rejects a cross-origin HTMLImageElement.
51 promise_test(function(t) { 52 promise_test(function(t) {
52 return detectFaceOnImageElementAndExpectError(IMAGE_URL) 53 var image = new Image();
54 return detectFaceOnElementAndExpectError(image, IMAGE_URL)
53 .then(error => { 55 .then(error => {
54 assert_equals(error.name, "SecurityError"); 56 assert_equals(error.name, "SecurityError");
55 }); 57 });
56 }, 58 },
57 "FaceDetector should reject cross-origin HTMLImageElements with a SecurityError. "); 59 "FaceDetector should reject cross-origin HTMLImageElements with a SecurityError. ");
58 60
59 // Verifies that FaceDetector rejects a cross-origin ImageBitmap. 61 // Verifies that FaceDetector rejects a cross-origin ImageBitmap.
60 promise_test(function(t) { 62 promise_test(function(t) {
61 return detectFaceOnImageBitmapAndExpectError(IMAGE_URL) 63 return detectFaceOnImageBitmapAndExpectError(IMAGE_URL)
62 .then(error => { 64 .then(error => {
63 assert_equals(error.name, "SecurityError"); 65 assert_equals(error.name, "SecurityError");
64 }); 66 });
65 }, 67 },
66 "FaceDetector should reject cross-origin ImageBitmaps with a SecurityError."); 68 "FaceDetector should reject cross-origin ImageBitmaps with a SecurityError.");
67 69
70 // Verifies that FaceDetector rejects a cross-origin HTMLVideoElement.
71 promise_test(function(t) {
72 var video = document.createElement('video');
73 return detectFaceOnElementAndExpectError(video, VIDEO_URL)
74 .then(error => {
75 assert_equals(error.name, "SecurityError");
76 });
77 },
78 "FaceDetector should reject cross-origin HTMLImageElements with a SecurityError. ");
79
68 </script> 80 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698