1

I'm trying to fix a couple of bugs for SafariDriver/Selenium.

Here is the problem:

On Safari 7 and bellow, to install a new plug in all you had to do is put the extension into ~/Library/Safari/Extensions. Next all you have to do is activate the plugin by adding it to the ~/Library/Safari/Extensions/Extensions.plist after this the Safari will have the plugin installed.

Starting with 10.10, this is no longer possible to do. The location of the extension is the same but i'm not sure how to activate the extension, since the Extensions.plist no longer exists.

My understanding is that there is some file that is controlled via "Safari Extensions List" password in the keychain under login but I have no idea which file this may apply to.

If I compile and install the extention by hand, everything works just fine but the automatic installation of the latest plugin is broken. (documentation for this https://code.google.com/p/selenium/wiki/SafariDriverInternals)

2 Answers2

2

"Safari Extensions List" password is not password actually but a binary plist same as ~/Library/Safari/Extensions/Extensions.plist

Read it, modify it, write it back.

Kimo
  • 185
  • 1
  • 1
  • 11
0

The correct thing to do is to have the user install the extension by opening it manually (double-click or command o). That's what Apple is trying to get you to do. Apple never really wanted anybody messing about with plists for other apps.

Most preferences plists are cached in memory anyway and would require a new login session to blow them away and get new copies. plists are updated on ending the session or the app in question.

They were never intended as a means to modify another app's behavior. That is a security risk.

In the case of Selenium, the intent is clearly to create an automated test environment. Setting up a nice installer pre-empts that to some degree.

The right thing to do is to file a bug with Apple letting them know what kind of functionality you need in Safari.

uchuugaka
  • 12,378
  • 6
  • 33
  • 54