【问题标题】:Programmatically install extensions on Safari 8 OSX 10.10以编程方式在 Safari 8 OSX 10.10 上安装扩展
【发布时间】:2014-11-05 21:25:48
【问题描述】:

我正在尝试修复 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 的文档)

【问题讨论】:

  • 这里要小心,您将扩展和插件这两个术语混为一谈。他们不一样...

标签: safari safari-extension safari8 osx-yosemite


【解决方案1】:

“Safari Extensions List”密码实际上不是密码,而是与~/Library/Safari/Extensions/Extensions.plist相同的二进制plist

阅读、修改、写回。

【讨论】:

    【解决方案2】:

    正确的做法是让用户通过手动打开它来安装扩展程序(双击或命令 o)。这就是苹果试图让你做的事情。 Apple 从来没有真正希望任何人为其他应用程序使用 plist。

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

    他们从来没有打算作为修改另一个应用程序行为的手段。这是一个安全风险。

    对于 Selenium,其目的显然是创建一个自动化测试环境。设置一个好的安装程序在一定程度上会先发制人。

    正确的做法是向 Apple 提交错误,让他们知道您在 Safari 中需要什么样的功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-28
      • 1970-01-01
      • 2012-04-30
      • 1970-01-01
      • 2015-08-27
      • 2015-01-04
      • 1970-01-01
      相关资源
      最近更新 更多