From b1a43cd04e8727df5bef3197f5fda3b98ecab740 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matias=20Niemel=C3=A4?= Date: Mon, 19 Aug 2013 17:48:40 -0400 Subject: [PATCH] fix($sniffer): ensure older versions of webkit work for animations --- src/ng/sniffer.js | 5 +++++ test/ng/snifferSpec.js | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/src/ng/sniffer.js b/src/ng/sniffer.js index 54e6e08360e1..585519b34847 100644 --- a/src/ng/sniffer.js +++ b/src/ng/sniffer.js @@ -35,6 +35,11 @@ function $SnifferProvider() { break; } } + + if(!vendorPrefix) { + vendorPrefix = ('WebkitOpacity' in bodyStyle) && 'webkit'; + } + transitions = !!(('transition' in bodyStyle) || (vendorPrefix + 'Transition' in bodyStyle)); animations = !!(('animation' in bodyStyle) || (vendorPrefix + 'Animation' in bodyStyle)); diff --git a/test/ng/snifferSpec.js b/test/ng/snifferSpec.js index c9d0d5a8c2b8..2206a271839a 100644 --- a/test/ng/snifferSpec.js +++ b/test/ng/snifferSpec.js @@ -122,6 +122,22 @@ describe('$sniffer', function() { }); }); + it('should still work for an older version of Webkit', function() { + module(function($provide) { + var doc = { + body : { + style : { + WebkitOpacity: '0' + } + } + }; + $provide.value('$document', jqLite(doc)); + }); + inject(function($sniffer) { + expect($sniffer.vendorPrefix).toBe('webkit'); + }); + }); + }); describe('animations', function() { @@ -201,6 +217,23 @@ describe('$sniffer', function() { expect($sniffer.animations).toBe(true); }); }); + + it('should be true when an older version of Webkit is used', function() { + module(function($provide) { + var doc = { + body : { + style : { + WebkitOpacity: '0' + } + } + }; + $provide.value('$document', jqLite(doc)); + }); + inject(function($sniffer) { + expect($sniffer.animations).toBe(false); + }); + }); + }); describe('transitions', function() {