Firefox 和内嵌 Gecko 程序的 Plugins

雪夜
发布: 2025-09-22 08:56:01
原创
234人浏览过

昨日在 jumufeng 同学建立的 firefox 交流群 (81424441) 中,与群友们讨论了有关插件的一些事项。我在本地进行了测试,并总结了一些初步的见解,现分享如下:(欢迎对 mozilla 相关开发有兴趣或正在进行开发的朋友加入群组交流)

通常,对于 firefox 和其他嵌入 Gecko 内核的应用程序而言,其插件的注册和搜索机制在 Windows 下应与以下内容相关:

(1) 程序会首先检查可执行文件同级的 plugins 目录下的 DLL 等文件,判断文件名是否符合插件特征,并通过某种机制确认其是否为插件。命名规则:例如,flash 插件的 DLL 名为 NPSWF32.DLL,改为 asdfjljlk.dll 则无法识别,而 NPSWF311112.dll 或 NPSWFjkljdlfkj32.dll 可以被识别,N1PSWF32.dll 则无法识别。

(2) 注册表中的 HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins 下注册了插件信息。

Firefox 和内嵌 Gecko 程序的 Plugins根据注册表项的 path 键值去搜索对应的 DLL,如果找不到,则在 firefox 的“附加组件”或 about:plugins 中不会显示,即使该 DLL 位于系统环境变量的 path 包含的路径下。((1) 中提到的 plugins 目录的情况除外)

(3) 在 %appdata%\Mozilla\Firefox\Profiles\wgnbwzjm.default 文件夹中的 pluginreg.dat 文件中包含具体配置项,插件是否启用和其他插件相关信息将从这里读取,并在“附加组件”和 about:plugins 中显示给用户。

Firefox 和内嵌 Gecko 程序的 Plugins光标处的 4 表示不启用,若为 1 或 5 则表示启用。若为 13,则表示找不到。删除此文件后再次运行 firefox 时会自动重新生成(根据 plugins 和注册表)。此设置对安装的 firefox 等在应用程序中启用 profile 的程序有效(我自己编写的嵌入 Gecko 的程序因为没有启用 profile,所以没有此文件,只能根据 plugins 和注册表来查找和显示插件)。剪切走此文件,则在 firefox 中已经禁用的插件也会被启用。

Plugins 文件夹的优先级更高。如果在 plugins 和注册表指示的路径下都能找到某插件 DLL,那么 pluginreg.dat 文件中的路径将被修改为 plugins 文件夹下的 DLL 路径。

Hugging Face
Hugging Face

Hugging Face AI开源社区

Hugging Face 135
查看详情 Hugging Face

其他相关小知识点:

(1) DLL 插件都实现了导出这三个函数。

Firefox 和内嵌 Gecko 程序的 Plugins(2) 如果删除插件注册表项和 pluginreg.dat 文件,但在 plugins 下有 DLL,仍可显示正确的 MIME 类型、描述等信息。推测 firefox 等程序在初始化时维护了一个数据库,根据 DLL 属性描述中的“原文件名”存储了这些信息的对应关系。

在 Windows XP 下查看这些 DLL 的属性,发现有 MIMEType、FileOpenName、FileExtents 与 about:plugins 中看到的 MIME 类型、描述、后缀三项一一对应,应该是从插件 DLL 的属性中直接读取的。

Firefox 和内嵌 Gecko 程序的 PluginsFirefox 和内嵌 Gecko 程序的 Plugins这些是我的初步认识,纯属个人测试后的推论,如有错误,欢迎指正。

以上就是Firefox 和内嵌 Gecko 程序的 Plugins的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号