我有一个插件可以传输一些数据并进行渲染。但在更新到Firefox 20后,插件报告无法找到该文件。在研究了这个问题后,我发现NPP_StreamAsFile在Firefox 19&之间返回了不同的路径。 20。
Windows 7操作系统 NPP_StreamAsFile - 为流提供文件的本地路径。 Firefox 19: NPP_StreamAsFile返回“C:\ Documents and Settings \ Administrator \ Local Settings \ Application Data \ Mozilla \ Firefox \ Profiles \ jpgiohcq.default \ Cache \ 1 \ 78 \ 87C58d01” 我们的插件检索此路径并处理数据
Firefox 20: NPP_StreamAsFile返回“C:\ DOCUME~1 \ ADMINI~1 \ LOCALS~1 \ Temp \ plugtmp-2 \ plugin-svrel.zhp” 调用NPP_DestroyStream后删除该文件。 在这种情况下,我们的插件找不到该文件。
但是,当我在使用Firefox 20时运行Process Monitor。在文件被销毁之前,文件似乎会被复制到缓存文件夹。
我在mozilla论坛上发布了我的问题。他们说他们改变了他们的缓存实现,我们负责在下载后管理数据。
我的问题是我们的插件是否应该在NPP_DestroyStream销毁之前复制数据?如果是这样,数据是否应保存在%APPDATA%应用程序文件夹中?我只是想确保我遵循gecko插件开发的正确指南。我没有成功找到有关此过程的任何细节。
答案 0 :(得分:0)
我的问题是我们的插件是否应该在NPP_DestroyStream销毁数据之前复制数据?
如果你想让它留在身边,那么是的,你必须复制一份(见bug 879503)。
流式传输数据的插件听起来像是要复制到临时目录(例如GetTempPath()
)。