nbalonso.com

Sharepoint 2010 Not Rendering in Safari

| Comments

Today I had to troubleshoot an issue where a user was not able to use a website with Safari. When the user browsed the website the dropdown menus and buttons were not rendering.

This the look of the menu when the issue appears

While digging to find the root cause and a fix I realised that the problem wasn’t just with Safari 8. All these versions of Safari appeared to have the issue:

  • Safari 8.0
  • Safari 7.1
  • Safari 6.1
  • Safari on iOS 8

After some googling I found this thread in StackExchange were they clearly explain the reason and a fix.

Turns out Microsoft messed up a regular expression in their mozilla.browser definition file. The current Safaris are using the WebKit core version 600.xyz and Microsoft used “60” to match older versions of Safari. Therefore the server incorrectly identifies the browser as an old version and disables AJAX-Extensions.

You can verify that this is the cause by enabling the developer menu in Safari and changing the user agent to something other that …600…

For example this

1
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10) AppleWebKit/610.1.25 (KHTML, like Gecko) Version/8.0 Safari/610.1.25

As for the server fix, the file that contains this error is located at

1
C:\Windows\Microsoft.NET\Framework\<version>\CONFIG\Browsers\mozilla.browser

and probably at here too

1
C:\Windows\Microsoft.NET\Framework64\<version>\CONFIG\Browsers\mozilla.browser

What you can do is add a dollar sign (end of line) just after the 60. Eg:

1
<capability name="appleWebTechnologyVersion" match="60$" />

Once that is done on the server, the same website renders just fine in all the browsers mentioned above :)

Comments