Проблема в том, что каждое окно Firefox - это совершенно отдельный процесс в отношении Javascript.
Так что да, это будет работать, но только если вы условно создадите синглтон. Если он просто безоговорочно создан в глобальной области (в моем случае, как член моего объекта расширения верхнего уровня), он будет во всех окнах.
Другая проблема, с которой вы столкнетесь, заключается в том, что для запуска и запуска javascript Windows требуется некоторое время, а у вас нет ничего похожего на синхронизацию. Вполне возможно, что окно 1 проверяет, создало ли окно 2 синглтон, видит, что оно не имеет, окно 2 проверяет окно 1, видит, не имеет, и затем оба создают свой собственный синглтон.
Я говорю по своему опыту: я написал расширение Firefox, которое делает нечто очень похожее на то, что вы хотите сделать: только одно окно должно проверять удаленный сервер (и все другие окна должны быть проинформированы, когда закрывается любое окно) .
(В моем случае каждое окно при запуске запрашивает все остальные окна, чтобы найти «главное» окно.)
Более чистым способом для этого является создание службы, аналогичной той, которую браузер предоставляет для JavaScript; но это требует написания кода на C, а не javascript, и делает установку расширения кросс-платформенной более сложной.