Fix for local storage issue

This commit is contained in:
Sam Potts
2018-03-18 01:37:24 +11:00
parent b06c8ae43f
commit 43e6dcd41d
15 changed files with 79 additions and 48 deletions

View File

@ -56,7 +56,7 @@ const defaults = {
// Sprite (for icons)
loadSprite: true,
iconPrefix: 'plyr',
iconUrl: 'https://cdn.plyr.io/3.0.0/plyr.svg',
iconUrl: 'https://cdn.plyr.io/3.0.1/plyr.svg',
// Blank video (used to prevent errors on source change)
blankVideo: 'https://cdn.plyr.io/static/blank.mp4',

View File

@ -1,6 +1,6 @@
// ==========================================================================
// Plyr
// plyr.js v3.0.0
// plyr.js v3.0.1
// https://github.com/sampotts/plyr
// License: The MIT License (MIT)
// ==========================================================================
@ -315,6 +315,10 @@ class Plyr {
* Play the media, or play the advertisement (if they are not blocked)
*/
play() {
if (!utils.is.function(this.media.play)) {
return null;
}
// If ads are enabled, wait for them first
if (this.ads.enabled && !this.ads.initialized) {
return this.ads.managerPromise.then(() => this.ads.play()).catch(() => this.media.play());
@ -328,7 +332,7 @@ class Plyr {
* Pause the media
*/
pause() {
if (!this.playing) {
if (!this.playing || !utils.is.function(this.media.pause)) {
return;
}

View File

@ -1,6 +1,6 @@
// ==========================================================================
// Plyr Polyfilled Build
// plyr.js v3.0.0
// plyr.js v3.0.1
// https://github.com/sampotts/plyr
// License: The MIT License (MIT)
// ==========================================================================

View File

@ -12,17 +12,18 @@ class Storage {
// Check for actual support (see if we can use it)
static get supported() {
if (!('localStorage' in window)) {
return false;
}
const test = '___test';
// Try to use it (it might be disabled, e.g. user is in private mode)
// see: https://github.com/sampotts/plyr/issues/131
try {
if (!('localStorage' in window)) {
return false;
}
const test = '___test';
// Try to use it (it might be disabled, e.g. user is in private mode)
// see: https://github.com/sampotts/plyr/issues/131
window.localStorage.setItem(test, test);
window.localStorage.removeItem(test);
return true;
} catch (e) {
return false;
@ -30,9 +31,13 @@ class Storage {
}
get(key) {
if (!Storage.supported) {
return null;
}
const store = window.localStorage.getItem(this.key);
if (!Storage.supported || utils.is.empty(store)) {
if (utils.is.empty(store)) {
return null;
}