在Safari 8 OSX 10.10上以编程方式安装扩展

时间:2014-11-05 21:25:48

标签: safari safari-extension safari8 osx-yosemite

我正在尝试修复SafariDriver / Selenium的几个错误。

问题在于:

在Safari 7和下面,要安装新插件,您只需将扩展名放入〜/ Library / Safari / Extensions即可。接下来,您需要做的就是通过将插件添加到〜/ Library / Safari / Extensions / Extensions.plist来激活插件,之后Safari将安装插件。

从10.10开始,这已经不可能了。扩展的位置是相同的,但我不知道如何激活扩展,因为Extensions.plist不再存在。

我的理解是有些文件是通过登录时的钥匙串中的“Safari Extensions List”密码控制的,但我不知道这可能适用于哪个文件。

如果我手动编译并安装扩展,一切正常,但最新插件的自动安装被破坏了。 (此https://code.google.com/p/selenium/wiki/SafariDriverInternals的文档)

2 个答案:

答案 0 :(得分:2)

" Safari Extensions List"密码实际上不是密码,而是与~/Library/Safari/Extensions/Extensions.plist

相同的二进制plist

阅读,修改,写回。

答案 1 :(得分:0)

正确的做法是让用户通过手动打开扩展程序来安装扩展程序(双击或命令o)。这就是Apple试图让你做的事情。 Apple从来没有真正想让任何人为其他应用程序搞乱。[/ p>

无论如何,大多数首选项plists都缓存在内存中,并且需要新的登录会话才能将它们吹走并获得新的副本。 plists会在结束会话或相关应用时更新。

它们从未打算作为修改其他应用行为的手段。这是一种安全风险。

在Selenium的案例中,目的显然是创建一个自动化的测试环境。设置一个漂亮的安装程序会在某种程度上抢占先机。

正确的做法是向Apple提交一个错误,让他们知道Safari中需要哪些功能。