Можно ли загрузить плагин NPAPI в Safari (Mac OS X)? - PullRequest
3 голосов
/ 16 сентября 2009

У меня есть некоторый код, который лежит в браузере, и я написал плагины для C ++ как для IE (COM / ActiveX), так и для Firefox (NPAPI).

Теперь я должен заставить этот код работать на Mac OS X. Я нашел некоторые входные данные на сайте Apple, но он написан на Objective C.

Я также читал о SIMBL , но, похоже, он касается только кода Objective C, не так ли?

Итак, вот мои вопросы:

  • Можно ли кодировать чистый плагин C ++ для Safari (было бы неплохо повторно использовать мой плагин Firefox NPAPI)?

  • Если это невозможно, есть ли способ использовать целевой плагин C в качестве загрузчика для некоторого кода C ++?

Я абсолютный нуб в Mac OS, и у меня даже нет Mac Box, чтобы возиться, поэтому очень общий вопрос.

Спасибо

1 Ответ

9 голосов
/ 16 сентября 2009

Механизм плагинов NPAPI является стандартным механизмом плагинов для браузеров в MacOS (и linux - все, кроме IE) - если вы используете NPAPI, ваш плагин будет работать в Safari, Firefox и Opera. Они также будут работать как в 32-, так и в 64-битном Safari. Предполагая, что ваш код не делает предположений о том, какой браузер работает в одном и том же NPAPI-коде, он должен работать во всех браузерах (я видел плагины «NPAPI», которые динамически разрешают связанные с XUL функции в слепой вере, что NPAPI используется только Firefox, несмотря на это стандартный формат плагинов для более или менее любого браузера, кроме IE).

«Плагины», такие как SIMBL, неправильно используют API-интерфейсы MacOS, предназначенные для определенной (но важной) цели произвольного внедрения собственного кода в адресное пространство Safari - когда люди используют их (вводя в заблуждение, полагая, что это безопасно), Safari становится существенно менее стабильным и часто перестает работать после серьезных обновлений (в крайнем случае «синий экран смерти» Leopard был из-за того, что logitech использовал APE для выполнения чего-то похожего на SIMBL).

...