Fix for null manager race condition

This commit is contained in:
Sam Potts
2018-03-11 18:23:47 +11:00
parent b3365a7373
commit 9981c349be
9 changed files with 57 additions and 59 deletions

14
dist/plyr.js vendored
View File

@ -4432,7 +4432,7 @@ var Ads = function () {
if (this.enabled) {
// Check if the Google IMA3 SDK is loaded or load it ourselves
if (!utils.is.object(window.google)) {
if (!utils.is.object(window.google) || !utils.is.object(window.google.ima)) {
utils.loadScript(this.player.config.urls.googleIMA.api).then(function () {
_this2.ready();
}).catch(function () {
@ -4544,8 +4544,6 @@ var Ads = function () {
request.forceNonLinearFullSlot = false;
this.loader.requestAds(request);
this.trigger('loaded');
} catch (e) {
this.onAdError(e);
}
@ -4585,7 +4583,7 @@ var Ads = function () {
}, {
key: 'onAdsManagerLoaded',
value: function onAdsManagerLoaded(adsManagerLoadedEvent) {
value: function onAdsManagerLoaded(event) {
var _this6 = this;
// Get the ads manager
@ -4597,7 +4595,7 @@ var Ads = function () {
// The SDK is polling currentTime on the contentPlayback. And needs a duration
// so it can determine when to start the mid- and post-roll
this.manager = adsManagerLoadedEvent.getAdsManager(this.player, settings);
this.manager = event.getAdsManager(this.player, settings);
// Get the cue points for any mid-rolls by filtering out the pre- and post-roll
this.cuePoints = this.manager.getCuePoints();
@ -4840,7 +4838,7 @@ var Ads = function () {
if (!this.managerPromise) {
return;
this.resumeContent();
}
// Play the requested advertisement whenever the adsManager is ready
@ -4864,7 +4862,7 @@ var Ads = function () {
// VAST response
_this9.onAdError(adError);
}
});
}).catch(function () {});
}
/**
@ -4949,7 +4947,7 @@ var Ads = function () {
// Now request some new advertisements
_this10.requestAds();
});
}).catch(function () {});
}
/**

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

@ -10340,7 +10340,7 @@ var Ads = function () {
if (this.enabled) {
// Check if the Google IMA3 SDK is loaded or load it ourselves
if (!utils.is.object(window.google)) {
if (!utils.is.object(window.google) || !utils.is.object(window.google.ima)) {
utils.loadScript(this.player.config.urls.googleIMA.api).then(function () {
_this2.ready();
}).catch(function () {
@ -10452,8 +10452,6 @@ var Ads = function () {
request.forceNonLinearFullSlot = false;
this.loader.requestAds(request);
this.trigger('loaded');
} catch (e) {
this.onAdError(e);
}
@ -10493,7 +10491,7 @@ var Ads = function () {
}, {
key: 'onAdsManagerLoaded',
value: function onAdsManagerLoaded(adsManagerLoadedEvent) {
value: function onAdsManagerLoaded(event) {
var _this6 = this;
// Get the ads manager
@ -10505,7 +10503,7 @@ var Ads = function () {
// The SDK is polling currentTime on the contentPlayback. And needs a duration
// so it can determine when to start the mid- and post-roll
this.manager = adsManagerLoadedEvent.getAdsManager(this.player, settings);
this.manager = event.getAdsManager(this.player, settings);
// Get the cue points for any mid-rolls by filtering out the pre- and post-roll
this.cuePoints = this.manager.getCuePoints();
@ -10748,7 +10746,7 @@ var Ads = function () {
if (!this.managerPromise) {
return;
this.resumeContent();
}
// Play the requested advertisement whenever the adsManager is ready
@ -10772,7 +10770,7 @@ var Ads = function () {
// VAST response
_this9.onAdError(adError);
}
});
}).catch(function () {});
}
/**
@ -10857,7 +10855,7 @@ var Ads = function () {
// Now request some new advertisements
_this10.requestAds();
});
}).catch(function () {});
}
/**

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