javascriptfirefoxbroadcast-channel

BroadcastChannel.onmessage not working in firefox


I need to share some information between 2 tabs of the same browser pointing at the same site. I'm using the BroadcastChannel.onmessage event handler as detailed here: https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel/onmessage

In the sender tab javascript code I defined:

var bc = new BroadcastChannel('my_bc_channel');
bc.postMessage(i); //where i is simply the line number i want to share

And in the receiving tab:

var bc = new BroadcastChannel('my_bc_channel');
//then use this to receive the incoming messages:
bc.onmessage = function (ev) {
    last_line = ev.data
}

My code works fine in Chrome, but it does not do anything in Firefox (latest version 70 freshly installed under windows). The compatibility chart in the link I gave above says it should be working from Firefox version 38.

The thing is, I'm not sure how to debug this. I don't have any error messages in the console. I don't know if it's the sender code that does not send anything. But clearly the receiving code is not triggered so I guess the .onmessage event is not detected. Where can I see in the javascript console if the message is sent ?


Solution

  • I opened a bug report: https://bugzilla.mozilla.org/show_bug.cgi?id=1600512

    Seems BroadcastChannel.onmessage does not work properly when you host your files locally on your hard drive, as I did in my example above. It works otherwise.