Вы не можете надежно использовать существование devicePixelRatio для надежного обнаружения только Safari.Это может работать сегодня, но ничто не мешает другому браузеру реализовать это, и тогда ваш код будет полностью сломан.
Как правило, это плохая идея для тестирования конкретного браузера.Самое разумное, что нужно сделать - это протестировать определенную функцию, которую вы хотите использовать.Если браузер показывает, что функция существует, вы используете ее, а если нет, то используете какой-то другой резервный механизм.
Обнаружение функции намного, намного проще в обслуживании, потому что по мере изменения браузеров вам не нужно постоянно менятьВаш код для настройки поведения для разных версий каждого браузера.По мере развития браузеров благодаря добавлению поддержки новейших функций ваш код автоматически адаптируется к ним.
Вот статья об обнаружении функций: http://peter.michaux.ca/articles/feature-detection-state-of-the-art-browser-scripting. Библиотека modernizr содержит многоФрагменты кода обнаружения функций, которые можно использовать целиком или узнать, как он обнаруживает функции и использовать только это конкретное обнаружение.