Make the indexeddb call syncronous to fix race condition

This commit is contained in:
Kavin 2023-11-23 21:48:23 +00:00
parent 6578f0f82b
commit dd83474126
No known key found for this signature in database
GPG key ID: 6E4598CA5C92C41F

View file

@ -401,7 +401,7 @@ export default {
videoEl.currentTime = segment.segment[1];
segment.skipped = true;
},
setPlayerAttrs(localPlayer, videoEl, uri, mime, shaka) {
async setPlayerAttrs(localPlayer, videoEl, uri, mime, shaka) {
const url = "/watch?v=" + this.video.id;
if (!this.$ui) {
@ -502,22 +502,25 @@ export default {
startTime = parseTimeParam(time);
this.initialSeekComplete = true;
} else if (window.db && this.getPreferenceBoolean("watchHistory", false)) {
var tx = window.db.transaction("watch_history", "readonly");
var store = tx.objectStore("watch_history");
var request = store.get(this.video.id);
request.onsuccess = function (event) {
var video = event.target.result;
const currentTime = video?.currentTime;
if (currentTime) {
if (currentTime < video.duration * 0.9) {
startTime = currentTime;
await new Promise(resolve => {
var tx = window.db.transaction("watch_history", "readonly");
var store = tx.objectStore("watch_history");
var request = store.get(this.video.id);
request.onsuccess = function (event) {
var video = event.target.result;
const currentTime = video?.currentTime;
if (currentTime) {
if (currentTime < video.duration * 0.9) {
startTime = currentTime;
}
}
}
};
resolve();
};
tx.oncomplete = () => {
this.initialSeekComplete = true;
};
tx.oncomplete = () => {
this.initialSeekComplete = true;
};
});
} else {
this.initialSeekComplete = true;
}