Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Version History

« Previous Version 6 Next »

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. However, if your application uses iframes and BrightSign-JavaScript objects, please see the Chromium 110/120 and iframes section below before upgrading.

Upgrading Series 5 Players

The BOS 9.0.145.1 contains a Beta version of Chromium 110 and BOS 9.0.168 contains a production 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 BOS 9.1 release which will contain Chromium 120 as the default.

See this page for more information about changing registry key settings in BrightAuthor:connected.

Registry Key Example Settings

You must reboot after updating the registry to apply the changes.

DWS  

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 this page for more information.

registry write html widget_type chromium110

BrightScript

See this page for more information.

RegHtml = CreateObject("roRegistrySection", "html")
RegHtml.Write("widget_type", "chromium110")
RegHtml.Flush()

JavaScript

See this page for more information.

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 this page for more information.

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 (CLI Tool) for more information.

bsc local registry --player PLAYER_NAME --set --value chromium110 --section html --key widget_type

Upgrading Series 4 Players

BrightSign plans to release BOS 9.1 with a Chromium 120 beta before the end of August to help customers using Power BI. We are investigating if this version can unify the Series 4 and 5 BOS 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, BrightSign JavaScript objects are no longer supported within iframes. This change impacts developers who have been embedding content in iframes that rely on these BrightSign-specific objects.

Applications with Control Over iframe Content

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 frame
<!-- 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
<!-- 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>

Applications Displaying Public URLs

If your application 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 application to vulnerabilities if the content is compromised or maliciously altered. Avoid embedding BrightSign objects in these cases and instead use Node-style  @brightsign  objects  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.

  • No labels