| 'use strict'; | |
| async function createClosedImageBitmap(t) { | |
| const img = new Image(); | |
| const imgWatcher = new EventWatcher(t, img, ['load', 'error']); | |
| img.src = '/images/green-16x16.png'; | |
| await imgWatcher.wait_for('load'); | |
| const imageBitmap = await createImageBitmap(img); | |
| imageBitmap.close(); | |
| return imageBitmap; | |
| } | |
| promise_test(async (t) => { | |
| const imageBitmap = await createClosedImageBitmap(t); | |
| const detector = new FaceDetector(); | |
| try { | |
| await detector.detect(imageBitmap); | |
| assert_unreached(); | |
| } catch (e) { | |
| assert_equals(e.code, DOMException.INVALID_STATE_ERR); | |
| } | |
| }, 'FaceDetector.detect() rejects on a closed ImageBitmap'); | |
| promise_test(async (t) => { | |
| const imageBitmap = await createClosedImageBitmap(t); | |
| const detector = new BarcodeDetector(); | |
| try { | |
| await detector.detect(imageBitmap); | |
| assert_unreached(); | |
| } catch (e) { | |
| assert_equals(e.code, DOMException.INVALID_STATE_ERR); | |
| } | |
| }, 'BarcodeDetector.detect() rejects on a closed ImageBitmap'); | |
| promise_test(async (t) => { | |
| const imageBitmap = await createClosedImageBitmap(t); | |
| const detector = new TextDetector(); | |
| try { | |
| await detector.detect(imageBitmap); | |
| assert_unreached(); | |
| } catch (e) { | |
| assert_equals(e.code, DOMException.INVALID_STATE_ERR); | |
| } | |
| }, 'TextDetector.detect() rejects on a closed ImageBitmap'); |