diff --git a/src/common/plugins/plugins-config.js b/src/common/plugins/plugins-config.js index 1a5fadeaf..610e336a0 100644 --- a/src/common/plugins/plugins-config.js +++ b/src/common/plugins/plugins-config.js @@ -1,6 +1,7 @@ //@flow import pluginsConfig from './plugins-config.json' import evaluate from '../utils/evaluate' +import {getReferrer} from '../utils/kaltura-params' import {Utils} from 'playkit-js' /** @@ -21,7 +22,8 @@ function evaluatePluginsConfig(options: KalturaPlayerOptionsObject): void { sessionId: options.session.id, ks: options.session.ks, uiConfId: options.session.uiConfId, - partnerId: options.session.partnerId + partnerId: options.session.partnerId, + referrer: getReferrer() }; Object.keys(entryDataModel).forEach(key => { if (entryDataModel[key] === undefined) { diff --git a/src/common/plugins/plugins-config.json b/src/common/plugins/plugins-config.json index 99d6d2975..ce99208d0 100644 --- a/src/common/plugins/plugins-config.json +++ b/src/common/plugins/plugins-config.json @@ -15,7 +15,8 @@ "sessionId": "{{sessionId}}", "ks": "{{ks}}", "uiConfId": "{{uiConfId}}", - "partnerId": "{{partnerId}}" + "partnerId": "{{partnerId}}", + "referrer": "{{referrer}}" }, "googleAnalytics": { "entryId": "{{entryId}}", diff --git a/src/common/utils/kaltura-params.js b/src/common/utils/kaltura-params.js index fbddad8e6..785e10573 100644 --- a/src/common/utils/kaltura-params.js +++ b/src/common/utils/kaltura-params.js @@ -75,6 +75,20 @@ function updateSessionIdInUrl(source: Object = {}, sessionId: ?string): void { } } +/** + * @return {string} - The referrer + * @private + */ +function getReferrer(): string { + let referrer; + try { + referrer = window.parent.document.URL; + } catch (e) { // unfriendly iframe + referrer = document.referrer; + } + return referrer; +} + /** * @param {PKMediaSourceObject} source - source * @return {void} @@ -83,7 +97,8 @@ function updateSessionIdInUrl(source: Object = {}, sessionId: ?string): void { function addReferrer(source: PKMediaSourceObject): void { if (source.url.indexOf(REFERRER) === -1) { let delimiter = source.url.indexOf('?') === -1 ? '?' : '&'; - source.url += delimiter + REFERRER + btoa(document.referrer || document.URL); + let referrer = btoa(getReferrer().substr(0, 1000)); + source.url += delimiter + REFERRER + referrer; } } @@ -123,4 +138,4 @@ function addKalturaParams(player: Player, playerConfig: PartialKalturaPlayerOpti }); } -export {addKalturaParams, handleSessionId, updateSessionIdInUrl, addReferrer, addClientTag} +export {addKalturaParams, handleSessionId, updateSessionIdInUrl, getReferrer, addReferrer, addClientTag}