Search Support

Avoid support scams. We will never ask you to call or text a phone number or share personal information. Please report suspicious activity using the “Report Abuse” option.

Learn More

BroadcastChannel.onmessage not working in firefox

  • 3 replies
  • 1 has this problem
  • 153 views
  • Last reply by Hugues

more options

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 ?

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 ?

Modified by Hugues

Chosen 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.

Read this answer in context 👍 0

All Replies (3)

more options

If the bug 1356546 mentioned didn't

resolve the issue then file a new firefox bug.

Otherwise you can try to split your

data up as was mentioned in comments, 

that wouldn't reduce the overall time,

but it might reduce the affect on UX,
or just don't support Firefox until they
fix their webextensions bugs.
more options

After reading bug report 1356546, I changed my code to send only 1 time the number 700 a few seconds after starting my code. No change. The code goes through without any error message but I receive nothing on the receiving tab.

Before I file a bug report, is there a way in the console of the sending tab to see the data that is being sent with bc.postMessage(i) ?

Modified by Hugues

more options

Chosen 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.