diff options
author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2021-03-14 18:41:15 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-14 18:41:15 -0400 |
commit | 07df1e011794f5a77f7fb7da5cd9ea353a8747e2 (patch) | |
tree | 98a679d4ef07629b8f0121e244038c557c972bd8 /ext/js/media/media-util.js | |
parent | 52a4d874eada5be121e15d73d1d10e9a8d84bdb8 (diff) |
Fix dictionary image support (#1526)
* Fix content security policy for images
* Add createBlobFromBase64Content to MediaUtil
* Update MediaLoader to use MediaUtil
* Use blob URLs when importing dictionaries
* Update VM's URL to support createObjectURL and revokeObjectURL
* Fix test
Diffstat (limited to 'ext/js/media/media-util.js')
-rw-r--r-- | ext/js/media/media-util.js | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/ext/js/media/media-util.js b/ext/js/media/media-util.js index 11172c5c..f783038a 100644 --- a/ext/js/media/media-util.js +++ b/ext/js/media/media-util.js @@ -129,4 +129,20 @@ class MediaUtil { return null; } } + + /** + * Creates a new `Blob` object from a base64 string of content. + * @param content The binary content string encoded in base64. + * @param mediaType The type of the media. + * @returns A new `Blob` object corresponding to the specified content. + */ + static createBlobFromBase64Content(content, mediaType) { + const binaryContent = atob(content); + const length = binaryContent.length; + const array = new Uint8Array(length); + for (let i = 0; i < length; ++i) { + array[i] = binaryContent.charCodeAt(i); + } + return new Blob([array.buffer], {type: mediaType}); + } } |