2013-06-17 1 views
0

У меня есть плагин, который передает некоторые данные и отображает их. Но после обновления до Firefox 20 плагин сообщил, что он не может найти файл. После изучения этого вопроса, я обнаружил, что NPP_StreamAsFile возвращает другой путь между Firefox 19 & 20.NPP_StreamAsFile возвращает другой путь

ОС Windows 7 OS NPP_StreamAsFile - обеспечивает локальный путь файла для потока. Firefox 19: NPP_StreamAsFile return "C: \ Documents and Settings \ Администратор \ Локальные настройки \ Данные приложения \ Mozilla \ Firefox \ Профили \ jpgiohcq.default \ Cache \ 1 \ 78 \ 87C58d01" Наш плагин возвращает этот путь и обрабатывать данные

Firefox 20: NPP_StreamAsFile возвращение "C: \ DOCUME ~ 1 \ Admini ~ 1 \ LOCALS ~ 1 \ Temp \ plugtmp-2 \ плагин-svrel.zhp" файл удалить после NPP_DestroyStream называется , В этом случае наш плагин не может найти файл.

Однако, когда я запускаю Process Monitor при использовании Firefox 20. Кажется, что файл получает копию в кеш-папку до ее уничтожения.

Я опубликовал свою проблему на форуме mozilla. Они сказали, что они изменили свою реализацию в кэше, и мы ответственны за управление данными после их загрузки.

Мой вопрос заключается в том, должен ли наш плагин копировать данные до того, как NPP_DestroyStream уничтожит его? Если да, должны ли данные сохраняться в папке приложения% APPDATA%? Я просто хочу убедиться, что соблюдаю правильные рекомендации по разработке плагинов gecko. Я не смог найти какие-либо подробности об этом процессе еще где.

ответ

0

Мой вопрос заключается в том, должен ли наш плагин копировать данные до того, как NPP_DestroyStream уничтожит его?

Если вы хотите, чтобы он остался после этого, то да, вы должны сделать копию (см. bug 879503).

Плагин, который передает данные, звучит так, как будто вы хотите скопировать в временную директорию (например, GetTempPath()).