Is it possible that your template code is cached and that’s the reason why you get the same results for both browsers?
That should not be the reason.
Browser Sniff plugin recognizes which browser is used by parsing $_SERVER[‘HTTP_USER_AGENT’] variable. Plugin outputs {browser_name} as “saf” in case $_SERVER[‘HTTP_USER_AGENT’] variable converted to lowercase contains substring “safari” and it outputs {browser_name} as “moz” in case $_SERVER[‘HTTP_USER_AGENT’] variable converted to lowercase contains substring “gecko”.
Here is what $_SERVER[‘HTTP_USER_AGENT’] variable outputs in case browser is Firefox 3 on Vista:
Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
Here is what $_SERVER[‘HTTP_USER_AGENT’] variable outputs in case browser is Firefox 3 on XP:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
As you can see there is no substring “safari”. This is the reason why the code
{exp:browser_sniff}
{if browser_name=="saf"}
<link rel="stylesheet" type="text/css" media="all" href="{stylesheet=include/safari}" />
{/if}
{/exp:browser_sniff}
outputs nothing, as it should, both for Firefox 3 on Vista and on XP.