tl;dr: Fixed now.
If you're interested, here's the reason why this was broken:
If you have several tabs open, chat uses the browser's
localStorage to have the tabs communicate with each other. This functionality is completely optional; chat works without it – but you have a few disadvantages when the
localStorage isn't available. The biggest one being that each of the tabs has to talk to the server, while with
localStorage available, only one of the tabs polls and just sends the data it received to the other ones.
A smaller, but still nice, benefit of having the tabs talk to each other is that you don't get the triple beep that you're reporting.
The code that makes the tabs talk to each other had a shortcut functionality that used the storage event's
storageArea property (if available) to check if it even was the
localStorage that fired the event. If
event.storageArea !== window.localStorage, it could return immediately, because the event wasn't interesting.
When this code was created, only the WebKit browsers supported the
.storageArea attribute. However, with the release of Version 4, FireFox started supporting it as well. And unlike Chrome, it behaves correctly according to the specification:
Document object must have a separate object for its
So when FireFox started supporting this, the fact that our code relied on Chrome's broken behavior caused the communication to break for FF: Since
event.storageArea !== window.localStorage is always true (because the tab that sent the data and the tab that received the data have different
localStorage objects), the shortcut was taken, so in effect no communication took place between the tabs.
We have removed the check (it's not reliably possible, and it was never very important in the first place), so FireFox tabs can once more talk to each other. As a side effect, you won't get multi-beeps anymore.