Skip to content
Snippets Groups Projects
Select Git revision
  • b5c5a431728f90d21adafeda1a2f9970337df3f2
  • master default protected
  • devel
  • hruska-feature-clients-api
  • malostik-#5066-deduplicate-idea-ids
  • warden-postgresql-port
  • hruska-feature-#6799-filter-keys
  • hruska-feature-5066-duplicateIdeaID
  • warden-client-3.0-beta3
  • warden-server-3.0-beta3
  • warden-client-2.2-final
  • warden-server-2.2-final
  • warden-client-3.0-beta2
  • warden-server-3.0-beta2
  • warden-client-2.2
  • warden-server-2.2-patch3
  • warden-client-3.0-beta1
  • warden-server-3.0-beta1
  • warden-server-2.2-patch1
  • warden-client-3.0-beta0
  • warden-server-3.0-beta0
  • warden-server-2.2
  • warden-server-2.1-patch1
  • warden-client-2.1
  • warden-server-2.1
  • warden-server-2.1-beta6
  • warden-server-2.1-beta5
  • warden-server-2.1-beta4
28 results

INSTALL

Blame
  • features.ts 1.54 KiB
    /**
     * Copyright (c) 2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
     *
     * @author David Sehnal <david.sehnal@gmail.com>
     */
    
    export const PluginFeatureDetection = {
        get preferWebGl1() {
            if (typeof navigator === 'undefined' || typeof window === 'undefined') return false;
    
            // WebGL2 isn't working in MacOS 12.0.1 Safari 15.1, 15.2. It is working in Safari 15.4 tech preview, so disabling all versions before that.
            // prefer webgl 1 based on the userAgent substring
            const unpportedSafariVersions = [
                'Version/15.1 Safari',
                'Version/15.2 Safari',
                'Version/15.3 Safari'
            ];
            if (unpportedSafariVersions.some(v => navigator.userAgent.indexOf(v) > 0)) {
                return true;
            }
    
            // Check for iOS device which enabled WebGL2 recently but it doesn't seem
            // to be full up to speed yet.
    
            // adapted from https://stackoverflow.com/questions/9038625/detect-if-device-is-ios
            const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent);
            const isAppleDevice = navigator.userAgent.includes('Macintosh');
            const isTouchScreen = navigator.maxTouchPoints >= 4; // true for iOS 13 (and hopefully beyond)
            return !(window as any).MSStream && (isIOS || (isAppleDevice && isTouchScreen));
        },
        get wboit() {
            if (typeof navigator === 'undefined' || typeof window === 'undefined') return true;
    
            // disable Wboit in Safari 15
            return !/Version\/15.\d Safari/.test(navigator.userAgent);
        }
    };