Отключает ли Firefox плагины, которые не удалось инициализировать?

#linux #plugins #firefox-addon

#linux #Плагины #firefox-аддон

Вопрос:

Я пытаюсь протестировать плагин Mozilla (разработанный с использованием FireBreath) в виде .so общего объектного файла. Плагин был разработан на Ubuntu, где он работает нормально.

Сейчас я пробую это в openSUSE — поэтому я сначала связал .so файл символикой в ~/.mozilla/plugins :

 > ln -s /path/to/npXXX.so ~/.mozilla/plugins/
 

… а затем запустил Firefox (7) из командной строки:

 > /path/to/firefox -P myprofile
...
LoadPlugin: failed to initialize shared library libXext.so [libXext.so: cannot open shared object file: No such file or directory]
LoadPlugin: failed to initialize shared library /path/to/npXXX.so [/path/to/npXXX.so: undefined symbol: gtk_widget_get_mapped]
# and the LoadPlugin messages do NOT show a second time - probably because plugin is disabled (via about:addons). 
 

И поэтому я подумал попробовать разные вещи, чтобы разобраться в этом, но сначала я перезапустил Firefox и понял, что при втором запуске я больше не получаю сообщения «LoadPlugin: не удалось инициализировать«! Затем я попытался удалить символическую ссылку плагинов и перезапустить FF; и снова добавить его и перезапустить FF — по-прежнему нет сообщений об ошибках!

Итак, это говорит мне о том, что, вероятно, Firefox каким-то образом отключил / внес в черный список плагин (но какой: libXext, npXXX или оба?), но поиск (grepping) для (np) XXX в ‘/path/to/myprofile/blocklist.xml ‘ничего не возвращает (плагин должен использовать идентификатор, подобный электронной почте, а не эти числовые идентификаторы, поэтому я ожидаю, что эта строка будет отображаться в blocklist.xml если он там есть).

Кто-нибудь знает: является ли поведение Firefox по умолчанию для отключения / блокировки плагинов, которые сначала не загружаются? Если да, есть ли способ заставить Firefox загружать их снова (и выдавать сообщения об ошибках)? Если у вас также будут ссылки на то, где задокументировано это поведение, это будет высоко оценено 🙂

Заранее большое спасибо за любые ответы,
приветствия!

Примечание: после того, как я перестал видеть сообщения об ошибках, я сделал следующее:

  • Я пытаюсь « about:plugins «: «Не найдено включенных плагинов«;
  • затем попробуйте « about:addons » и нажмите «Плагины»: «У вас не установлены какие-либо дополнения этого типа«;

Этот плагин не встроен в расширение, поэтому ничего нового не следует добавлять в « about:addons » в разделе «Расширения» — и, как и ожидалось, там ничего нового не отображается. В Ubuntu (где все работает), просто путем символической ссылки на плагин ~/.mozilla/plugins , в двух вышеуказанных местах / экранах начинает отображаться информация о плагине.

Это одна из вещей, которые меня озадачивают — если бы он просто показывал плагин как «отключенный», возможно, у меня был бы шанс снова включить его (чтобы получить новую порцию сообщений об ошибках) — однако « about:plugins » и « about:addons » просто ничего не показывают — так что мне нечего можно использовать для включения оттуда. Что говорит мне о том, что Firefox использовал другой метод для отключения плагинов, но я не могу сказать, что это такое…

Комментарии:

1. Вы можете проверить список надстроек / расширений через менеджер (shift-ctrl-A в последних Firefoxes). Как только надстройка / расширение помечено как отключенное, FF НЕ будет пытаться загрузить его снова.

2. Попробуйте удалить ~/.mozilla/firefox/*/pluginreg.dat .

3. Приветствия, @MarcB — Я отредактировал исходное сообщение, чтобы уточнить: после того, как я перестаю видеть сообщения об ошибках, ничего не отображается, связанного с этим плагином, ни в » about:addons «, ни в » about:plugins «.

4. Большое спасибо @n.m. — вот и все! Это было pluginreg.dat в каталоге моего профиля: grep -i -B 1 XXX /path/to/myprofile/pluginreg.dat возвращено «[НЕДЕЙСТВИТЕЛЬНО]» — и после mv ввода его в » __pluginreg.dat » и перезапуска Firefox из командной строки я снова вижу сообщения об ошибках! Woot! 🙂 Не могли бы вы опубликовать ответ, чтобы я мог его принять? Приветствия!

Ответ №1:

В Firefox есть кэш для модулей XPCOM («кэш быстрой загрузки»), если модуль не загружается, Firefox не будет повторять попытку. Кэш сбрасывается автоматически при установке расширения или обновлении приложения. Начиная с Firefox 4, вы также можете использовать -purgecaches флаг командной строки для удаления кэша.

Комментарии:

1. Большое спасибо за это, @Wladimir Palant — насколько я понимаю, FireBreath создает плагины NPAPI (что, я полагаю, означает, что они не являются плагинами XPCOM) — тем не менее, приятно знать -purgecaches … Приветствия!