Players

Upgrade to Chromium 110/120

11min
series 5 players can now be upgraded to versions 110 and 120 of chromium, which offer significant performance improvements, enhanced security, and access to the latest web technologies series 4 players will soon support these chromium versions as well if your application uses iframes and brightsign javascript objects, please see the chromium 110/120 and iframes section below https //brightsign atlassian net/wiki/spaces/doc/pages/2651914265/upgrade+to+chromium+110+120#chromium 110%2f120 and iframes before upgrading series 5 players brightsignos 9 0 145 1 contains a beta version of chromium 110 and brightsignos 9 0 168 and higher contain a beta version of chromium 120 you can upgrade to these versions using the chromium110 registry key, as described below this functionality will eventually move into a brightsignos 9 1 release which will contain chromium 120 as the default see diagnostic web server (dws) docid\ xue20rjxhft lq0rdmjbw for more information about changing registry key settings using brightauthor\ connected registry key example settings you must reboot after updating the registry to apply the changes don't forget to add authentication to the curl command below curl location request put 'http //\<player ip>/api/v1/registry/html/widget type' \\ \ header 'content type application/json' \\ \ digest u '{username} {password}' \\ \ data raw '{"value" "chromium110"}' brightscript console see brightsign shell docid\ fxxyu9jmocutc6xe2p7l2 for more info brightscript registry write html widget type chromium110 brightscript see roregistrysection docid\ ffm73tjd bthw4 p 0jvg for more info brightscript reghtml = createobject("roregistrysection", "html") reghtml write("widget type", "chromium110") reghtml flush() javascript see registry docid\ txwoombd2 u12dfegx7ga for more info var registryclass = require("@brightsign/registry"); var registry = new registryclass(); registry write("html", { widget type "chromium110" }) then(() => { console log("write successful"); }) catch((error) => { console error("write failed", error); }); typescript see registry docid\ txwoombd2 u12dfegx7ga for more info import registryclass from "@brightsign/registry"; const registry = new registryclass(); registry write("html", { widget type "chromium110" }) then(() => { console log("write successful"); }) catch((error error) => { console error("write failed", error); }); player cli see @brightsign/bsc https //www npmjs com/package/@brightsign/bsc (cli tool) for more information bsc local registry player player name set value chromium110 section html key widget type series 4 players brightsign plans to release brightsignos 9 1 with a chromium 120 beta before the end of august, 2025 to help customers using power bi we are investigating if this version can unify the series 4 and 5 brightsignos versions series 3 players brightsign is investigating the series 3 product line hardware capabilities in order to provide a higher chromium version beta os versions may contain functional differences with the production os chromium 110/120 and iframes in chromium version 110 and later, brightscript javascript objects docid\ urrxhu7l v9ea zhy0jv3 are only supported within iframes in brightsignos version 9 0 191 or greater this change impacts developers who have been embedding content in iframes that rely on these brightsign specific objects apps with iframe content control if your application embeds content within an iframe and you have control over the content inside that iframe, you’ll need to adjust your approach instead of using brightsign objects directly inside the iframe, you should send messages from the iframe to the parent window using the postmessage() method the parent window, which contains the brightsign objects, can then handle these messages and execute the necessary actions below is an example in which the iframe sends a message to the parent window using window\ parent postmessage() the parent window listens for messages using the message event listener, and upon receiving a message, it can interact with the brightsign objects to perform the desired actions iframe content child iframe \<! inside the iframe > \<script> // create a message to send to the parent window const message = { action 'examplecommand', data 'example data' }; // send the message to the parent window window\ parent postmessage(message, ' '); // the ' ' wildcard allows any origin use specific origin for security \</script> parent window parent window with brightsign objects brightscript \<! parent window containing brightsign objects > \<script> window\ addeventlistener('message', (event) => { // make sure to validate the origin of the message for security if (event origin !== 'https //your trusted origin com') { return; } const message = event data; if (message action === 'examplecommand') { // use the brightsign object to perform the necessary action // example brightsignobject somefunction(message data); console log('received message ', message); } }); \</script> apps displaying public urls if your app loads public urls within an iframe, avoid using brightsign objects within the iframe public content can be unpredictable and potentially insecure using brightsign objects in such scenarios could expose your app to vulnerabilities if the content is compromised or maliciously altered avoid embedding brightsign objects in these cases and instead use node style @brightsign javascript apis docid\ o2uiynvkbsyd1qxcvhvcn whenever possible these objects align with modern javascript development practices, provide enhanced security, and let you maintain compatibility and security across different environments and chromium versions