diff options
| author | Théo Gaillard <theo.gaillard@protonmail.com> | 2021-12-26 13:45:27 +0100 |
|---|---|---|
| committer | Théo Gaillard <theo.gaillard@protonmail.com> | 2021-12-26 13:45:27 +0100 |
| commit | 0453d08eedf8caa8c825efca028df63e9ec127ac (patch) | |
| tree | f16d0ae5b386626ff8e52474d51f2d85a1de38ff | |
| parent | a18068aedf9ebdecd8d84978da44f11339d20129 (diff) | |
| download | invidious-0453d08eedf8caa8c825efca028df63e9ec127ac.tar.gz invidious-0453d08eedf8caa8c825efca028df63e9ec127ac.tar.bz2 invidious-0453d08eedf8caa8c825efca028df63e9ec127ac.zip | |
fix: null ptr while retaining time
| -rw-r--r-- | assets/js/player.js | 44 |
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) { |
