2013-07-26 2 views
0

Я сделал плагин для браузера firebreath (Windows). Теперь я обновляю плагин, но плагин dll не может быть обновлен до загрузки плагина.Как сбросить браузер из плагина

Как перезапустить браузер, чтобы обновить плагин? или как плагин, который можно загрузить из кеша браузера?

ответ

1

варианты я вижу, являются:

  • сообщить пользователю, чтобы перезапустить браузер после установки/обновления
  • сообщить пользователю, чтобы закрыть браузер (ы), прежде чем приступить к установке

Обратите внимание, что у вас все еще могут быть проблемы с заменой DLL. Что, например, Flash делает суффикс имени своего файла (например, npYourPlugin_1_2_77.dll), поэтому блокировки файлов не являются проблемой.

Если вы это сделаете, возможно, вам даже не понадобится перезагрузить браузер, если вы можете позвонить по номеру navigator.plugins.refresh() (работает с Firefox 17, но не уверен в других браузерах).

Также обратите внимание, что я не уверен в подключении к ActiveX (IE), если вам тоже нужно это поддерживать - возможно, таксилиан будет перекликаться с этим и другими сценариями, которые я не натолкнулся на себя.

+1

Вы рассмотрели основные вещи, которые я бы упомянул; Мне до этого удалось обновить элемент управления IE на месте (используя номер версии в имени файла, как вы предлагаете, добавив его в папку, зависящую от версии), но никогда с FireBreath, и возможно, что-то есть в том, что FireBreath это мешает ему работать, поскольку никто из меня не знает, что он работал с FireBreath. – taxilian

+0

файлы с версией, которую я помог! Спасибо! но мне интересно, как перезагрузить браузер с кода C++ + – user2618420

+0

Если вы имеете в виду от плагина - это действительно не очень хорошая идея. Если вы имеете в виду внешнее приложение (setup, updater), вы можете использовать системные API для (изящно) завершения процесса браузера. Обратите внимание, что это все еще не очень хорошая идея, если вы не спросите пользователя об этом из-за возможной потери данных. Я думаю, что на самом деле перезапуск браузеров - это не тривиальная задача - вы можете запустить двоичные файлы, которые вы только что закрыли, но это может пропустить, например.переменные окружения или настройки, сделанные некоторым вспомогательным приложением, которые действительно начали запуск. –

0

Этапы модернизации моего firebreath плагин является

  1. Сделайте установки плагина НСИ.
  2. В начале установки определите, занят ли плагин каким-либо браузером или нет.
  3. Закрытие всех браузеров, которые используют плагин на данный момент.
  4. Удалите предыдущую версию pluin.
  5. Установите новую версию плагина в папку с последним номером версии.
  6. В конце установки перезапустите браузер, который был закрыт ранее, и перейдите к нужному URL-адресу.

Кстати, как отметил Георг, вам не нужно перезапускать Chrome и Firefox после проверки версии плагина, а это значит, что у вас есть подпрограмма для обновления плагина и немедленного использования нового. Однако вы должны перезапустить IE, так как, когда вы получаете версию элемента управления activex, вам необходимо создать его экземпляр, что делает первый плагин загруженным.

Прямо сейчас, это хорошо работает и, как и ожидалось.

Смежные вопросы