diff --git a/server/lib/player-media-health.js b/server/lib/player-media-health.js index 4322fd8..b0bc2d9 100644 --- a/server/lib/player-media-health.js +++ b/server/lib/player-media-health.js @@ -13,8 +13,11 @@ // // Dependency-free UMD: Node (require) + browser/Tizen (window.PlayerMediaHealth). (function (root, factory) { - if (typeof module === 'object' && module.exports) module.exports = factory(); - else root.PlayerMediaHealth = factory(); + // BOTH, not either/or — see schedule-eval.js. Node integration in a BrightSign widget made the + // browser branch unreachable, so the player ran without its media-health decision there. + var api = factory(); + if (typeof module === 'object' && module.exports) module.exports = api; + if (root) root.PlayerMediaHealth = api; })(typeof self !== 'undefined' ? self : this, function () { 'use strict'; diff --git a/server/lib/schedule-eval.js b/server/lib/schedule-eval.js index 79b76fa..01a8de2 100644 --- a/server/lib/schedule-eval.js +++ b/server/lib/schedule-eval.js @@ -22,8 +22,13 @@ // Dependency-free UMD: Node (require) + browser/Tizen (window.ScheduleEval). (function (root, factory) { - if (typeof module === 'object' && module.exports) module.exports = factory(); - else root.ScheduleEval = factory(); + // BOTH, not either/or: a BrightSign widget runs with Node integration, so `module` exists in + // page scope and an `else` left root.ScheduleEval undefined there. The player falls back to + // "always active" when it is missing — i.e. per-item DAYPARTING silently stopped applying on + // that platform, and scheduled content played outside its window with nothing in any log. + var api = factory(); + if (typeof module === 'object' && module.exports) module.exports = api; + if (root) root.ScheduleEval = api; })(typeof self !== 'undefined' ? self : this, function () { 'use strict'; diff --git a/server/player/index.html b/server/player/index.html index fb11b79..a695560 100644 --- a/server/player/index.html +++ b/server/player/index.html @@ -3152,12 +3152,36 @@ // the frame on screen now, as a texturable (CORS-clean) source: the live , or — so a wipe can // start FROM a playing clip — a snapshot canvas of the outgoing