[Editor] Always use the data url when loading a SVG in order to avoid CSP issue (bug 1843255)
This commit is contained in:
parent
762d86a59e
commit
ed42577d9c
@ -110,25 +110,20 @@ class ImageManager {
|
|||||||
// Unfortunately, createImageBitmap doesn't work with SVG images.
|
// Unfortunately, createImageBitmap doesn't work with SVG images.
|
||||||
// (see https://bugzilla.mozilla.org/1841972).
|
// (see https://bugzilla.mozilla.org/1841972).
|
||||||
const fileReader = new FileReader();
|
const fileReader = new FileReader();
|
||||||
const dataUrlPromise = new Promise(resolve => {
|
const imageElement = new Image();
|
||||||
fileReader.onload = () => {
|
const imagePromise = new Promise((resolve, reject) => {
|
||||||
data.svgUrl = fileReader.result;
|
imageElement.onload = () => {
|
||||||
resolve();
|
data.bitmap = imageElement;
|
||||||
};
|
|
||||||
});
|
|
||||||
fileReader.readAsDataURL(image);
|
|
||||||
const url = URL.createObjectURL(image);
|
|
||||||
image = new Image();
|
|
||||||
const imagePromise = new Promise(resolve => {
|
|
||||||
image.onload = () => {
|
|
||||||
URL.revokeObjectURL(url);
|
|
||||||
data.bitmap = image;
|
|
||||||
data.isSvg = true;
|
data.isSvg = true;
|
||||||
resolve();
|
resolve();
|
||||||
};
|
};
|
||||||
|
fileReader.onload = () => {
|
||||||
|
imageElement.src = data.svgUrl = fileReader.result;
|
||||||
|
};
|
||||||
|
imageElement.onerror = fileReader.onerror = reject;
|
||||||
});
|
});
|
||||||
image.src = url;
|
fileReader.readAsDataURL(image);
|
||||||
await Promise.all([imagePromise, dataUrlPromise]);
|
await imagePromise;
|
||||||
} else {
|
} else {
|
||||||
data.bitmap = await createImageBitmap(image);
|
data.bitmap = await createImageBitmap(image);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user