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

@ -1,3 +1,7 @@
# v3.0.1
* Fix for trying to accessing local storage when it's blocked
# v3.0.0 # v3.0.0
This is a massive release. A _mostly_ complete rewrite in ES6. What started out as a few changes quickly snowballed. There's many breaking changes so be careful upgrading. This is a massive release. A _mostly_ complete rewrite in ES6. What started out as a few changes quickly snowballed. There's many breaking changes so be careful upgrading.

19
dist/plyr.js vendored
View File

@ -77,7 +77,7 @@ var defaults = {
// Sprite (for icons) // Sprite (for icons)
loadSprite: true, loadSprite: true,
iconPrefix: 'plyr', 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) // Blank video (used to prevent errors on source change)
blankVideo: 'https://cdn.plyr.io/static/blank.mp4', blankVideo: 'https://cdn.plyr.io/static/blank.mp4',
@ -4306,9 +4306,13 @@ var Storage = function () {
createClass(Storage, [{ createClass(Storage, [{
key: 'get', key: 'get',
value: function get$$1(key) { value: function get$$1(key) {
if (!Storage.supported) {
return null;
}
var store = window.localStorage.getItem(this.key); var store = window.localStorage.getItem(this.key);
if (!Storage.supported || utils.is.empty(store)) { if (utils.is.empty(store)) {
return null; return null;
} }
@ -4346,6 +4350,7 @@ var Storage = function () {
}], [{ }], [{
key: 'supported', key: 'supported',
get: function get$$1() { get: function get$$1() {
try {
if (!('localStorage' in window)) { if (!('localStorage' in window)) {
return false; return false;
} }
@ -4354,9 +4359,9 @@ var Storage = function () {
// Try to use it (it might be disabled, e.g. user is in private mode) // Try to use it (it might be disabled, e.g. user is in private mode)
// see: https://github.com/sampotts/plyr/issues/131 // see: https://github.com/sampotts/plyr/issues/131
try {
window.localStorage.setItem(test, test); window.localStorage.setItem(test, test);
window.localStorage.removeItem(test); window.localStorage.removeItem(test);
return true; return true;
} catch (e) { } catch (e) {
return false; return false;
@ -6021,7 +6026,7 @@ var source = {
// ========================================================================== // ==========================================================================
// Plyr // Plyr
// plyr.js v3.0.0 // plyr.js v3.0.1
// https://github.com/sampotts/plyr // https://github.com/sampotts/plyr
// License: The MIT License (MIT) // License: The MIT License (MIT)
// ========================================================================== // ==========================================================================
@ -6305,6 +6310,10 @@ var Plyr = function () {
value: function play() { value: function play() {
var _this2 = this; var _this2 = this;
if (!utils.is.function(this.media.play)) {
return null;
}
// If ads are enabled, wait for them first // If ads are enabled, wait for them first
if (this.ads.enabled && !this.ads.initialized) { if (this.ads.enabled && !this.ads.initialized) {
return this.ads.managerPromise.then(function () { return this.ads.managerPromise.then(function () {
@ -6325,7 +6334,7 @@ var Plyr = function () {
}, { }, {
key: 'pause', key: 'pause',
value: function pause() { value: function pause() {
if (!this.playing) { if (!this.playing || !utils.is.function(this.media.pause)) {
return; return;
} }

2
dist/plyr.js.map vendored

File diff suppressed because one or more lines are too long

2
dist/plyr.min.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -5268,7 +5268,7 @@ var defaults = {
// Sprite (for icons) // Sprite (for icons)
loadSprite: true, loadSprite: true,
iconPrefix: 'plyr', 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) // Blank video (used to prevent errors on source change)
blankVideo: 'https://cdn.plyr.io/static/blank.mp4', blankVideo: 'https://cdn.plyr.io/static/blank.mp4',
@ -9497,9 +9497,13 @@ var Storage = function () {
createClass(Storage, [{ createClass(Storage, [{
key: 'get', key: 'get',
value: function get(key) { value: function get(key) {
if (!Storage.supported) {
return null;
}
var store = window.localStorage.getItem(this.key); var store = window.localStorage.getItem(this.key);
if (!Storage.supported || utils.is.empty(store)) { if (utils.is.empty(store)) {
return null; return null;
} }
@ -9537,6 +9541,7 @@ var Storage = function () {
}], [{ }], [{
key: 'supported', key: 'supported',
get: function get() { get: function get() {
try {
if (!('localStorage' in window)) { if (!('localStorage' in window)) {
return false; return false;
} }
@ -9545,9 +9550,9 @@ var Storage = function () {
// Try to use it (it might be disabled, e.g. user is in private mode) // Try to use it (it might be disabled, e.g. user is in private mode)
// see: https://github.com/sampotts/plyr/issues/131 // see: https://github.com/sampotts/plyr/issues/131
try {
window.localStorage.setItem(test, test); window.localStorage.setItem(test, test);
window.localStorage.removeItem(test); window.localStorage.removeItem(test);
return true; return true;
} catch (e) { } catch (e) {
return false; return false;
@ -11212,7 +11217,7 @@ var source = {
// ========================================================================== // ==========================================================================
// Plyr // Plyr
// plyr.js v3.0.0 // plyr.js v3.0.1
// https://github.com/sampotts/plyr // https://github.com/sampotts/plyr
// License: The MIT License (MIT) // License: The MIT License (MIT)
// ========================================================================== // ==========================================================================
@ -11496,6 +11501,10 @@ var Plyr$1 = function () {
value: function play() { value: function play() {
var _this2 = this; var _this2 = this;
if (!utils.is.function(this.media.play)) {
return null;
}
// If ads are enabled, wait for them first // If ads are enabled, wait for them first
if (this.ads.enabled && !this.ads.initialized) { if (this.ads.enabled && !this.ads.initialized) {
return this.ads.managerPromise.then(function () { return this.ads.managerPromise.then(function () {
@ -11516,7 +11525,7 @@ var Plyr$1 = function () {
}, { }, {
key: 'pause', key: 'pause',
value: function pause() { value: function pause() {
if (!this.playing) { if (!this.playing || !utils.is.function(this.media.pause)) {
return; return;
} }
@ -12512,7 +12521,7 @@ var Plyr$1 = function () {
// ========================================================================== // ==========================================================================
// Plyr Polyfilled Build // Plyr Polyfilled Build
// plyr.js v3.0.0 // plyr.js v3.0.1
// https://github.com/sampotts/plyr // https://github.com/sampotts/plyr
// License: The MIT License (MIT) // License: The MIT License (MIT)
// ========================================================================== // ==========================================================================

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
{ {
"name": "plyr", "name": "plyr",
"version": "3.0.0", "version": "3.0.1",
"description": "A simple, accessible and customizable HTML5, YouTube and Vimeo media player", "description": "A simple, accessible and customizable HTML5, YouTube and Vimeo media player",
"homepage": "https://plyr.io", "homepage": "https://plyr.io",
"main": "./dist/plyr.js", "main": "./dist/plyr.js",

View File

@ -124,7 +124,7 @@ See [initialising](#initialising) for more information on advanced setups.
If you want to use our CDN (provided by [Fastly](https://www.fastly.com/)) for the JavaScript, you can use the following: If you want to use our CDN (provided by [Fastly](https://www.fastly.com/)) for the JavaScript, you can use the following:
```html ```html
<script src="https://cdn.plyr.io/3.0.0/plyr.js"></script> <script src="https://cdn.plyr.io/3.0.1/plyr.js"></script>
``` ```
_Note_: Be sure to read the [polyfills](#polyfills) section below about browser compatibility _Note_: Be sure to read the [polyfills](#polyfills) section below about browser compatibility
@ -140,13 +140,13 @@ Include the `plyr.css` stylsheet into your `<head>`
If you want to use our CDN (provided by [Fastly](https://www.fastly.com/)) for the default CSS, you can use the following: If you want to use our CDN (provided by [Fastly](https://www.fastly.com/)) for the default CSS, you can use the following:
```html ```html
<link rel="stylesheet" href="https://cdn.plyr.io/3.0.0/plyr.css"> <link rel="stylesheet" href="https://cdn.plyr.io/3.0.1/plyr.css">
``` ```
### SVG Sprite ### SVG Sprite
The SVG sprite is loaded automatically from our CDN (provided by [Fastly](https://www.fastly.com/)). To change this, see the [options](#options) below. For The SVG sprite is loaded automatically from our CDN (provided by [Fastly](https://www.fastly.com/)). To change this, see the [options](#options) below. For
reference, the CDN hosted SVG sprite can be found at `https://cdn.plyr.io/3.0.0/plyr.svg`. reference, the CDN hosted SVG sprite can be found at `https://cdn.plyr.io/3.0.1/plyr.svg`.
## Ads ## Ads

View File

@ -56,7 +56,7 @@ const defaults = {
// Sprite (for icons) // Sprite (for icons)
loadSprite: true, loadSprite: true,
iconPrefix: 'plyr', 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) // Blank video (used to prevent errors on source change)
blankVideo: 'https://cdn.plyr.io/static/blank.mp4', blankVideo: 'https://cdn.plyr.io/static/blank.mp4',

View File

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

View File

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

View File

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