Это вопрос, который часто поднимается пользователями FireBreath, так что, возможно, пришло время более подробно ответить на форуме, который легче найти, чем в группе Google проекта.
Прежде всего, чтобы прояснить ситуацию с regsvr32, FireBreath действительно поддерживает «саморегистрацию» для всех браузеров; это означает, что когда вы вызываете regsvr32, он устанавливает ключи реестра не только для IE, но и для браузеров NPAPI, используя методы, на которые ссылается DReJ (+1 за эту информацию, кстати, спасибо. Многие не знают, где ее найти).
Тем не менее, саморегистрация DLL крайне нежелательна в мире инсталляторов и Microsoft. Есть много причин для этого. Вы проделали довольно хорошую работу, суммируя другие варианты установки в своем посте; Вы можете использовать .cab в IE и .XPI в Firefox, но, конечно, они не помогут вам в других браузерах.
Метод, рекомендованный командой FireBreath (которую я возглавляю), заключается в использовании установщика MSI для всех браузеров. Лично мне не нравится, когда в разных браузерах все работает по-разному, поэтому я использую javascript для обнаружения наличия (или отсутствия) плагина, а затем запрашиваю пользователя загрузить и запустить установщик MSI.
FireBreath имеет «встроенную» поддержку для создания установщиков MSI с WiX. Если вы установите WiX 3.0 или более позднюю версию на своем компьютере и повторно запустите подготовительный сценарий, он создаст проект _WiXInstaller, который создаст базовый MSI для установки вашего плагина для всех браузеров как часть процесса сборки Visual Studio. Вы можете изменить шаблон .wxs, который останется в вашем домашнем каталоге, чтобы настроить его.
Более подробную информацию можно найти на вики FireBreath:
http://www.firebreath.org/display/documentation/WiX+Installer+Help
http://www.firebreath.org/display/~me@iaincollins.com/Potential+Installer+Improvements
Если вы действительно любите использовать установщик .cab для IE (у меня были проблемы с ними, но некоторым, похоже, повезло с ними), вы можете распространять файл MSI внутри CAB и запускать его, когда CAB установлен. Преимущество этого заключается в том, что при установке MSI он устанавливает все для IE, Firefox, Safari, Chrome и Opera (а также для других браузеров, которые совместимы с теми же технологиями плагинов, что и эти браузеры).
В качестве краткого примечания, причина того, что MSI является идеальным решением для установки плагинов (в отличие от использования чего-то, что вызывает DllRegisterServer, например regsvr32), заключается в том, что MSI основан на транзакциях, поэтому при удалении он всегда будет обращать вспять то, что было Путин; это означает, что вам не нужно беспокоиться о поддержке удаления 10 разных старых версий установщика, которые помещают вещи в разные места и т. д., потому что система MSI позаботится об удалении всего корректно при обновлении.
Надеюсь, это поможет!