summaryrefslogtreecommitdiff
path: root/ext/js/media/media-loader.js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/js/media/media-loader.js')
-rw-r--r--ext/js/media/media-loader.js17
1 files changed, 5 insertions, 12 deletions
diff --git a/ext/js/media/media-loader.js b/ext/js/media/media-loader.js
index d9d40a36..4ac733c5 100644
--- a/ext/js/media/media-loader.js
+++ b/ext/js/media/media-loader.js
@@ -15,6 +15,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+/* global
+ * MediaUtil
+ */
+
class MediaLoader {
constructor() {
this._token = {};
@@ -82,22 +86,11 @@ class MediaLoader {
const token = this._token;
const data = (await yomichan.api.getMedia([{path, dictionaryName}]))[0];
if (token === this._token && data !== null) {
- const contentArrayBuffer = this._base64ToArrayBuffer(data.content);
- const blob = new Blob([contentArrayBuffer], {type: data.mediaType});
+ const blob = MediaUtil.createBlobFromBase64Content(data.content, data.mediaType);
const url = URL.createObjectURL(blob);
cachedData.data = data;
cachedData.url = url;
}
return cachedData;
}
-
- _base64ToArrayBuffer(content) {
- const binaryContent = window.atob(content);
- const length = binaryContent.length;
- const array = new Uint8Array(length);
- for (let i = 0; i < length; ++i) {
- array[i] = binaryContent.charCodeAt(i);
- }
- return array.buffer;
- }
}