summaryrefslogtreecommitdiffstats
path: root/assets/js/player.js
diff options
context:
space:
mode:
authorThéo Gaillard <theo.gaillard@protonmail.com>2021-12-26 13:45:27 +0100
committerThéo Gaillard <theo.gaillard@protonmail.com>2021-12-26 13:45:27 +0100
commit0453d08eedf8caa8c825efca028df63e9ec127ac (patch)
treef16d0ae5b386626ff8e52474d51f2d85a1de38ff /assets/js/player.js
parenta18068aedf9ebdecd8d84978da44f11339d20129 (diff)
downloadinvidious-0453d08eedf8caa8c825efca028df63e9ec127ac.tar.gz
invidious-0453d08eedf8caa8c825efca028df63e9ec127ac.tar.bz2
invidious-0453d08eedf8caa8c825efca028df63e9ec127ac.zip
fix: null ptr while retaining time
Diffstat (limited to 'assets/js/player.js')
-rw-r--r--assets/js/player.js44
1 files changed, 32 insertions, 12 deletions
diff --git a/assets/js/player.js b/assets/js/player.js
index 0cc4bab9..2608158b 100644
--- a/assets/js/player.js
+++ b/assets/js/player.js
@@ -59,6 +59,16 @@ videojs.Hls.xhr.beforeRequest = function(options) {
var player = videojs('player', options);
+const storage = (() => {
+ try {
+ if (localStorage.length !== -1) {
+ return localStorage;
+ }
+ } catch (e) {
+ console.info('No storage available: ' + e);
+ }
+ return undefined;
+})();
if (location.pathname.startsWith('/embed/')) {
player.overlay({
@@ -386,25 +396,35 @@ function get_video_time() {
}
function set_all_video_times(times) {
- const json = JSON.stringify(times);
-
- localStorage.setItem(save_player_pos_key, json);
+ if (storage) {
+ if (times) {
+ try {
+ storage.setItem(save_player_pos_key, JSON.stringify(times));
+ } catch (e) {
+ console.debug('set_all_video_times: ' + e);
+ }
+ } else {
+ storage.removeItem(save_player_pos_key);
+ }
+ }
}
function get_all_video_times() {
- try {
- const raw = localStorage.getItem(save_player_pos_key);
- const times = JSON.parse(raw);
-
- return times || {};
- }
- catch {
- return {};
+ if (storage) {
+ const raw = storage.getItem(save_player_pos_key);
+ if (raw !== null) {
+ try {
+ return JSON.parse(raw);
+ } catch (e) {
+ console.debug('get_all_video_times: ' + e);
+ }
+ }
}
+ return {};
}
function remove_all_video_times() {
- localStorage.removeItem(save_player_pos_key);
+ set_all_video_times(null);
}
function set_time_percent(percent) {