В Firefox, navigator.registerProtocolHandler
будет работать только в том случае, если он включен в оператор window.onload
или если он выполняется в функции, которая вызывается явным образом при каком-либо взаимодействии с пользователем (то есть при нажатии на кнопку, которая вызывает функция, которая регистрирует обработчик протокола).
В Chrome, navigator.registerProtocolHandler
не может быть выполнено автоматически, его необходимо выполнить в функции, которая вызывается при каком-либо взаимодействии с пользователем. У меня нет ссылок на документацию, подтверждающую это, я обнаружил это только в результате собственных экспериментов.