com.vaadin.flow.shared.

Class BrowserDetails

  • All Implemented Interfaces:

    Serializable


    public class BrowserDetails
    extends Object
    implements Serializable

    Class that parses the user agent string from the browser and provides information about the browser.

    Since:

    1.0.

    Author:

    Vaadin Ltd

    See Also:

    Serialized Form

    • Nested Class Summary

      Nested Classes
      Modifier and Type Class and Description
      static class  BrowserDetails.OperatingSystem

      An enum for detected operating systems.

    • Constructor Summary

      Constructors
      Constructor and Description
      BrowserDetails(String userAgent)

      Create an instance based on the given user agent.

    • Method Summary

      All Methods
      Modifier and Type Method and Description
      float getBrowserEngineVersion()

      Returns the version of the browser engine.

      int getBrowserMajorVersion()

      Returns the browser major version e.g., 3 for Firefox 3.5, 4 for Chrome 4, 8 for Internet Explorer 8.

      int getBrowserMinorVersion()

      Returns the browser minor version e.g., 5 for Firefox 3.5.

      int getOperatingSystemMajorVersion()

      Returns the major version of the operating system.

      int getOperatingSystemMinorVersion()

      Returns the minor version of the operating system.

      boolean isAndroid()

      Tests if the browser is run on Android.

      boolean isChrome()

      Tests if the browser is Chrome.

      boolean isChromeOS()

      Tests if the browser is run on Chrome OS (e.g.

      boolean isEdge()

      Tests if the browser is Edge.

      boolean isEs5AdapterNeeded()

      Checks if the browser needs `custom-elements-es5-adapter.js` to be loaded.

      boolean isEs6Supported()

      Checks if the browser supports ECMAScript 6, based on the user agent.

      boolean isFirefox()

      Tests if the browser is Firefox.

      boolean isGecko()

      Tests if the browser is using the Gecko engine.

      boolean isIE()

      Tests if the browser is Internet Explorer.

      boolean isIOS()

      Tests if the browser is run in iOS.

      boolean isIPad()

      Tests if the browser is run on iPad.

      boolean isIPhone()

      Tests if the browser is run on iPhone.

      boolean isLinux()

      Tests if the browser is run on Linux.

      boolean isMacOSX()

      Tests if the browser is run on Mac OSX.

      boolean isOpera()

      Tests if the browser is Opera.

      boolean isPresto()

      Tests if the browser is using the Presto engine.

      boolean isSafari()

      Tests if the browser is Safari.

      boolean isSafariOrIOS()

      Tests if the browser is Safari or runs on IOS (covering also Chrome on iOS).

      boolean isTooOldToFunctionProperly()

      Checks if the browser is so old that it simply won't work.

      boolean isTrident()

      Tests if the browser is using the Trident engine.

      boolean isWebKit()

      Tests if the browser is using the WebKit engine.

      boolean isWindows()

      Tests if the browser is run on Windows.

      boolean isWindowsPhone()

      Tests if the browser is run on Windows Phone.

    • Constructor Detail

      • BrowserDetails

        public BrowserDetails(String userAgent)

        Create an instance based on the given user agent.

        Parameters:

        userAgent - User agent as provided by the browser.

    • Method Detail

      • isFirefox

        public boolean isFirefox()

        Tests if the browser is Firefox.

        Returns:

        true if it is Firefox, false otherwise

      • isGecko

        public boolean isGecko()

        Tests if the browser is using the Gecko engine.

        Returns:

        true if it is Gecko, false otherwise

      • isWebKit

        public boolean isWebKit()

        Tests if the browser is using the WebKit engine.

        Returns:

        true if it is WebKit, false otherwise

      • isPresto

        public boolean isPresto()

        Tests if the browser is using the Presto engine.

        Returns:

        true if it is Presto, false otherwise

      • isTrident

        public boolean isTrident()

        Tests if the browser is using the Trident engine.

        Returns:

        true if it is Trident, false otherwise

      • isSafari

        public boolean isSafari()

        Tests if the browser is Safari.

        Returns:

        true if it is Safari, false otherwise

      • isSafariOrIOS

        public boolean isSafariOrIOS()

        Tests if the browser is Safari or runs on IOS (covering also Chrome on iOS).

        Returns:

        true if it is Safari or running on IOS, false otherwise

      • isChrome

        public boolean isChrome()

        Tests if the browser is Chrome.

        Returns:

        true if it is Chrome, false otherwise

      • isOpera

        public boolean isOpera()

        Tests if the browser is Opera.

        Returns:

        true if it is Opera, false otherwise

      • isIE

        public boolean isIE()

        Tests if the browser is Internet Explorer.

        Returns:

        true if it is Internet Explorer, false otherwise

      • isEdge

        public boolean isEdge()

        Tests if the browser is Edge.

        Returns:

        true if it is Edge, false otherwise

      • getBrowserEngineVersion

        public float getBrowserEngineVersion()

        Returns the version of the browser engine. For WebKit this is an integer e.g., 532.0. For gecko it is a float e.g., 1.8 or 1.9.

        Returns:

        The version of the browser engine

      • getBrowserMajorVersion

        public final int getBrowserMajorVersion()

        Returns the browser major version e.g., 3 for Firefox 3.5, 4 for Chrome 4, 8 for Internet Explorer 8.

        Note that Internet Explorer 8 and newer will return the document mode so IE8 rendering as IE7 will return 7.

        Returns:

        The major version of the browser.

      • getBrowserMinorVersion

        public final int getBrowserMinorVersion()

        Returns the browser minor version e.g., 5 for Firefox 3.5.

        Returns:

        The minor version of the browser, or -1 if not known/parsed.

        See Also:

        getBrowserMajorVersion()

      • isWindows

        public boolean isWindows()

        Tests if the browser is run on Windows.

        Returns:

        true if run on Windows, false otherwise

      • isWindowsPhone

        public boolean isWindowsPhone()

        Tests if the browser is run on Windows Phone.

        Returns:

        true if run on Windows Phone, false otherwise

      • isMacOSX

        public boolean isMacOSX()

        Tests if the browser is run on Mac OSX.

        Returns:

        true if run on Mac OSX, false otherwise

      • isLinux

        public boolean isLinux()

        Tests if the browser is run on Linux.

        Returns:

        true if run on Linux, false otherwise

      • isAndroid

        public boolean isAndroid()

        Tests if the browser is run on Android.

        Returns:

        true if run on Android, false otherwise

      • isIOS

        public boolean isIOS()

        Tests if the browser is run in iOS.

        Returns:

        true if run in iOS, false otherwise

      • isIPhone

        public boolean isIPhone()

        Tests if the browser is run on iPhone.

        Returns:

        true if run on iPhone, false otherwise

      • isChromeOS

        public boolean isChromeOS()

        Tests if the browser is run on Chrome OS (e.g. a Chromebook).

        Returns:

        true if run on Chrome OS, false otherwise

      • isIPad

        public boolean isIPad()

        Tests if the browser is run on iPad.

        Returns:

        true if run on iPad, false otherwise

      • getOperatingSystemMajorVersion

        public int getOperatingSystemMajorVersion()

        Returns the major version of the operating system. Currently only supported for mobile devices (iOS/Android)

        Returns:

        The major version or -1 if unknown

      • getOperatingSystemMinorVersion

        public int getOperatingSystemMinorVersion()

        Returns the minor version of the operating system. Currently only supported for mobile devices (iOS/Android)

        Returns:

        The minor version or -1 if unknown

      • isTooOldToFunctionProperly

        public boolean isTooOldToFunctionProperly()

        Checks if the browser is so old that it simply won't work.

        Returns:

        true if the browser won't work, false if not the browser is supported or might work

      • isEs6Supported

        public boolean isEs6Supported()

        Checks if the browser supports ECMAScript 6, based on the user agent. The main features required to consider the browser ES6 compatible are ES6 Classes, let/const support and arrow functions.

        Returns:

        true if the browser supports ES6, false otherwise.

      • isEs5AdapterNeeded

        public boolean isEs5AdapterNeeded()

        Checks if the browser needs `custom-elements-es5-adapter.js` to be loaded.

        This adapter file is needed when the browser has some ES6 capabilities, but a ES5 files are served instead. This happens when the browser doesn't support all ES6 features needed for Flow to work properly, or when some ES6 features have bugs under conditions used by the application.

        Returns:

        true if the browser needs the adapter, false otherwise.