forked from mirrors/gecko-dev
		
	 514f5977b9
			
		
	
	
		514f5977b9
		
	
	
	
	
		
			
			Automatic update from web-platform-tests Fix ShapeDetection handling of broken HTMLImageElements When an HTMLImageElement's 'src' is set to the empty string, the state of the image request will be 'broken', and thus the promise should be rejected with an InvalidStateError exception per the rules at [1]. Move the intrinsic size check below the image existence check, and use a more direct method of getting at the size (no need to go through the BitmapImageSource interface when we're already fiddling with internals). Also add a check for IsLoaded() to better match the spec wording 'fully decodable'. [1] https://wicg.github.io/shape-detection-api/#image-sources-for-detection Bug: 789511 Change-Id: I69ac4a9081cfff7f9c7c8f7edf39667e3dd1eb4d Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2587165 Reviewed-by: Reilly Grant <reillyg@chromium.org> Commit-Queue: Fredrik Söderquist <fs@opera.com> Cr-Commit-Position: refs/heads/master@{#837140} -- wpt-commits: 245cc257ba8757fd4debe2e68246cb5885c51dd1 wpt-pr: 26889
		
			
				
	
	
		
			33 lines
		
	
	
	
		
			991 B
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
	
		
			991 B
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE html>
 | |
| <script src="/resources/testharness.js"></script>
 | |
| <script src="/resources/testharnessreport.js"></script>
 | |
| <script>
 | |
| // This test verifies *Detector.detect() rejects the promise when fed with
 | |
| // an HTMLImageElement with an empty 'src'.
 | |
| const emptyInputTests = [
 | |
|   {
 | |
|     createDetector: () => { return new FaceDetector(); },
 | |
|     name: "Face - detect(empty src)"
 | |
|   },
 | |
|   {
 | |
|     createDetector: () => { return new BarcodeDetector(); },
 | |
|     name: "Barcode - detect(empty src)"
 | |
|   },
 | |
|   {
 | |
|     createDetector: () => { return new TextDetector(); },
 | |
|     name: "Text - detect(empty src)"
 | |
|   }
 | |
| ];
 | |
| 
 | |
| for (let emptyInputTest of emptyInputTests) {
 | |
|   promise_test(async t => {
 | |
|     const img = new Image();
 | |
|     const imgWatcher = new EventWatcher(t, img, ["load", "error"]);
 | |
|     img.src = "";
 | |
|     await imgWatcher.wait_for("error");
 | |
| 
 | |
|     const detector = emptyInputTest.createDetector();
 | |
|     promise_rejects_dom(t, "InvalidStateError", detector.detect(img));
 | |
|   }, emptyInputTest.name);
 | |
| }
 | |
| </script>
 |