aboutsummaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorMarkku Roponen <markku.roponen@valve.fi>2016-04-08 15:47:27 +0300
committerMarkku Roponen <markku.roponen@valve.fi>2016-04-08 15:47:27 +0300
commita63c8cab92932dfb71097b40092d3c7c7c5429c1 (patch)
tree19cf3ad79c1c83120d8441d13f1b3cf127be8d3a /js
parente83e275a4ca293fc6aeb9955a3d5e7cbff57eb33 (diff)
downloadfosdem-2018-presentation-a63c8cab92932dfb71097b40092d3c7c7c5429c1.tar
fosdem-2018-presentation-a63c8cab92932dfb71097b40092d3c7c7c5429c1.tar.gz
Fixes #1549, now UA match is limiting out MS Edge and Chrome detection is improved. Also improved UserAgent access by storing it in to a local variable, it was accessed so many times in different places.
Diffstat (limited to 'js')
-rw-r--r--js/reveal.js15
1 files changed, 10 insertions, 5 deletions
diff --git a/js/reveal.js b/js/reveal.js
index 0b1cad7..d224e96 100644
--- a/js/reveal.js
+++ b/js/reveal.js
@@ -32,6 +32,7 @@
HORIZONTAL_SLIDES_SELECTOR = '.slides>section',
VERTICAL_SLIDES_SELECTOR = '.slides>section.present>section',
HOME_SLIDE_SELECTOR = '.slides>section:first-of-type',
+ UA = navigator.userAgent,
// Configuration defaults, can be overridden at initialization time
config = {
@@ -197,6 +198,9 @@
// Client is a mobile device, see #checkCapabilities()
isMobileDevice,
+ // Client is a desktop Chrome, see #checkCapabilities()
+ isChrome,
+
// Throttles mouse wheel navigation
lastMouseWheelStep = 0,
@@ -301,7 +305,8 @@
*/
function checkCapabilities() {
- isMobileDevice = /(iphone|ipod|ipad|android)/gi.test( navigator.userAgent );
+ isMobileDevice = /(iphone|ipod|ipad|android)/gi.test( UA );
+ isChrome = /chrome/i.test( UA ) && !/edge/i.test( UA );
var testElement = document.createElement( 'div' );
@@ -324,13 +329,13 @@
// Transitions in the overview are disabled in desktop and
// Safari due to lag
- features.overviewTransitions = !/Version\/[\d\.]+.*Safari/.test( navigator.userAgent );
+ features.overviewTransitions = !/Version\/[\d\.]+.*Safari/.test( UA );
// Flags if we should use zoom instead of transform to scale
// up slides. Zoom produces crisper results but has a lot of
// xbrowser quirks so we only use it in whitelsited browsers.
features.zoom = 'zoom' in testElement.style && !isMobileDevice &&
- ( /chrome/i.test( navigator.userAgent ) || /Version\/[\d\.]+.*Safari/.test( navigator.userAgent ) );
+ ( isChrome || /Version\/[\d\.]+.*Safari/.test( UA ) );
}
@@ -1048,7 +1053,7 @@
// Only support touch for Android, fixes double navigations in
// stock browser
- if( navigator.userAgent.match( /android/gi ) ) {
+ if( UA.match( /android/gi ) ) {
pointerEvents = [ 'touchstart' ];
}
@@ -4183,7 +4188,7 @@
}
// There's a bug with swiping on some Android devices unless
// the default action is always prevented
- else if( navigator.userAgent.match( /android/gi ) ) {
+ else if( UA.match( /android/gi ) ) {
event.preventDefault();
}