From a06242704b535c73d5991ecf81e97b7b6cda9c3e Mon Sep 17 00:00:00 2001 From: Yair Ansbacher Date: Tue, 29 Dec 2020 15:45:38 +0200 Subject: [PATCH] fix(FEC-10680): back-end bumper: the app should decide what bumper will be displayed when also set user bumper (#392) consider the app plugins config before the provider's Solves FEC-10680 --- src/kaltura-player.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/kaltura-player.js b/src/kaltura-player.js index f2332872e..a05fad52a 100644 --- a/src/kaltura-player.js +++ b/src/kaltura-player.js @@ -113,6 +113,7 @@ class KalturaPlayer extends FakeEventTarget { } mediaConfig.sources = Utils.Object.mergeDeep(mediaConfig.sources, mediaOptions); } + mediaConfig.plugins = this._mergeProviderPluginsConfig(mediaConfig.plugins); this.configure(getDefaultRedirectOptions(this.config, mediaConfig)); this.setMedia(mediaConfig); }, @@ -773,6 +774,18 @@ class KalturaPlayer extends FakeEventTarget { this._localPlayer.detachMediaSource(); } + _mergeProviderPluginsConfig(providerPluginsConfig: KPPluginsConfigObject): KPPluginsConfigObject { + const mergePluginConfig: KPPluginsConfigObject = {}; + Object.entries(providerPluginsConfig).forEach(([pluginName, pluginConfig]: [string, Object]) => { + mergePluginConfig[pluginName] = {}; + Object.entries(pluginConfig).forEach(([key, providerValue]) => { + const appValue = Utils.Object.getPropertyPath(this.config.plugins[pluginName], key); + mergePluginConfig[pluginName][key] = appValue || providerValue; + }); + }); + return mergePluginConfig; + } + /** * Set crossOrigin attribute. * @param {?string} crossOrigin - 'anonymous', 'use-credentials' or null to remove attribute