Commit 26ea25b8 authored by Shik Chen's avatar Shik Chen Committed by Commit Bot

CCA: Fix error handling for thumbnail generation

In the old code an Event would be rejected instead of an Error. This CL
fixes that with a better error message for video.

Bug: 1140852
Test: Load an invalid video manually.
Change-Id: Ia659eddff5d8406c44d61fa1a6f556e61ddf2b7a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2509613
Auto-Submit: Shik Chen <shik@chromium.org>
Reviewed-by: default avatarWei Lee <wtlee@chromium.org>
Commit-Queue: Wei Lee <wtlee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#822603}
parent 94362e90
...@@ -369,7 +369,22 @@ export async function scalePicture(url, isVideo, width, height = undefined) { ...@@ -369,7 +369,22 @@ export async function scalePicture(url, isVideo, width, height = undefined) {
} }
await new Promise((resolve, reject) => { await new Promise((resolve, reject) => {
element.addEventListener(isVideo ? 'canplay' : 'load', resolve); element.addEventListener(isVideo ? 'canplay' : 'load', resolve);
element.addEventListener('error', reject); element.addEventListener('error', () => {
if (isVideo) {
let msg = 'Failed to load video';
/**
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/error
* @type {?MediaError}
*/
const err = element.error;
if (err !== null) {
msg += `: ${err.message}`;
}
reject(new Error(msg));
} else {
reject(new Error('Failed to load image'));
}
});
element.src = url; element.src = url;
}); });
if (height === undefined) { if (height === undefined) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment