Xibo player on Linux does not display JavaScript content

Player Version

1.8-R6 (ubuntu)
CMS is 2.3.12 docker/linux
both cms and client on the same machine

Issue

After writing a very long and detailed of my problem , assuming its something with my layout , I have deleted all of it and starting over…

The player does not display content of web page.
the web page I am trying to present is a very simple web page , built with jQuery or JavaScript presenting a very simple response,

this is the web page, displayed perfectly on chrome/firefox
page

It was working on the layout for more than two years and stopped for some reason I cannot explain, during the last month.

I have read many posts in the community regarding such problems,
Furthermore, as you can see, the player actually shows the data based on pure html div but does not display the div based on javascript jQuery (I tested it with jQuery 3.4.1, 3.5.1, 3.6.0)

I have also learnt that Xibo player for Linux is working with webKitGtk, and investigating into it , I read alot about javaScript in this browser engine,
do I just need to enable javaScript for webKitGtk? how ?
Did they really change something in the latest version of webKitGTK that’s making this mess?

hope you can clear the fog for me

Guy

There haven’t been any new releases of the Player in some time, and the libraries that the Player uses are built in to the snap, so nothing will have changed with the Player itself.

It’s much more likely to be the external script that is linked from your webpage changing in some way that has broken support in the Player.

Looking at the javascript you’re including, it was rebuilt on 16th November according to the comment in it. I think that is your “smoking gun”.

If we look at the console messages that are output that backs that up:

** Message: 08:46:40.435: console message: https://www.hebcal.com/etc/hdate-en.js @3: SyntaxError: Unexpected use of reserved word 'let' in strict mode

** Message: 08:46:40.436: console message: https://www.hebcal.com/etc/hdate-en.js @3: SyntaxError: Unexpected use of reserved word 'let' in strict mode

** Message: 08:46:40.436: console message: https://yahalomsguy.github.io/SynSign/NashDom01/RuTehilimMonth.html @34: SyntaxError: DOM Exception 12: An invalid or illegal string was specified.

** Message: 08:46:49.735: console message: https://www.hebcal.com/etc/hdate-en.js @3: SyntaxError: Unexpected use of reserved word 'let' in strict mode

** Message: 08:46:49.736: console message: https://www.hebcal.com/etc/hdate-en.js @3: SyntaxError: Unexpected use of reserved word 'let' in strict mode

** Message: 08:46:49.736: console message: https://yahalomsguy.github.io/SynSign/NashDom01/RuTehilimMonth.html @34: SyntaxError: DOM Exception 12: An invalid or illegal string was specified.

The javascript has been rebuilt using “let” instead of “var” to define variables, which is a newer syntax. If you contact the website that you’re taking that script from, they might be able to provide you with the older version which will then work.

There’s also a suggestion that there’s a syntax error in your HTML. I’ve not looked at that however.

Hello Alex,
Thank you for the response.

I agree that something in the JavaScript code used by the source (HebCal) could cause a problem,
and obviously, whether its a new problem or just obsolete and doesn’t match the newer version of javascript library its relying on, there’s nothing I can do about it (other than copying the whole script to my webpage and running it in from there).

But still, I just cannot understand why everything is working perfectly in the preview in the CMS in Linux and in Xibo player for windows?

Are there any plans to change the browser engine Xibo player for Linux is using to other than WebKit?
Thanks
Guy

It works in the preview and on the other Players, because they’re not using the same browser engine as the Linux Player is. In the preview, you’re using whatever web browser it is that you’re using to access the CMS, and on Windows, you’re using a version of Edge - all of which support newer syntax for the JavaScript engine that the older engine in the Linux Player doesn’t.

You’re correct you would have to host a copy of the older JavaScript code that is compatible with the engine in the Player - or directly embed it in to your webpage rather than including it externally. This is the only way that you are going to resolve this in the short term.

The problem is not with a change in the Player, but a change in the Javascript you are trying to run.

There is an issue open for upgrading the browser engine in the Player, but it’s blocked on a long-standing bug in newer versions of that.

1 Like