com.vaadin.server.

Class WebBrowser

  • All Implemented Interfaces:

    Serializable

    public class WebBrowser
    extends Object
    implements Serializable

    Class that provides information about the web browser the user is using. Provides information such as browser name and version, screen resolution and IP address.

    Author:

    Vaadin Ltd.

    See Also:

    Serialized Form

    • Constructor Summary

      Constructors
      Constructor Description
      WebBrowser()  
    • Method Summary

      All Methods
      Modifier and Type Method Description
      String getAddress()

      Gets the IP-address of the web browser.

      String getBrowserApplication()

      Get the browser user-agent string.

      int getBrowserMajorVersion()

      Gets the major version of the browser the user is using.

      int getBrowserMinorVersion()

      Gets the minor version of the browser the user is using.

      String getBrowserVersion()

      Gets the complete browser version as string.

      Date getCurrentDate()

      Returns the current date and time of the browser.

      int getDSTSavings()

      Returns the offset in milliseconds between the browser's GMT TimeZone and DST.

      Locale getLocale()

      Get the default locate of the browser.

      int getRawTimezoneOffset()

      Returns the browser-reported TimeZone offset in milliseconds from GMT ignoring possible daylight saving adjustments that may be in effect in the browser.

      int getScreenHeight()

      Gets the height of the screen in pixels.

      int getScreenWidth()

      Gets the width of the screen in pixels.

      String getTimeZoneId()

      Returns the TimeZone Id (like "Europe/Helsinki") provided by the browser (if the browser supports this feature).

      int getTimezoneOffset()

      Returns the browser-reported TimeZone offset in milliseconds from GMT.

      boolean isAndroid()

      Tests if the browser is run on Android.

      boolean isChrome()

      Tests whether the user is using Chrome.

      boolean isChromeFrame()

      Tests whether the user is using Chrome Frame.

      boolean isChromeFrameCapable()

      Tests whether the user's browser is Chrome Frame capable.

      boolean isChromeOS()

      Tests if the browser is run on ChromeOS (e.g.

      boolean isDSTInEffect()

      Returns whether daylight saving time (DST) is currently in effect in the region of the browser or not.

      boolean isEdge()

      Tests whether the user is using Edge.

      boolean isEs6Supported()

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

      boolean isFirefox()

      Tests whether the user is using Firefox.

      boolean isIE()

      Tests whether the user is using 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 whether the user is using Linux.

      boolean isMacOSX()

      Tests whether the user is using Mac OS X.

      boolean isOpera()

      Tests whether the user is using Opera.

      boolean isSafari()

      Tests whether the user is using Safari.

      boolean isSecureConnection()

      Is the connection made using HTTPS?

      boolean isTooOldToFunctionProperly()

      Checks if the browser is so old that it simply won't work with a Vaadin application.

      boolean isTouchDevice()  
      boolean isWindows()

      Tests whether the user is using Windows.

      boolean isWindowsPhone()

      Tests whether the user is using Windows Phone.

      void updateRequestDetails​(VaadinRequest request)

      For internal use by VaadinServlet/VaadinPortlet only.

    • Constructor Detail

      • WebBrowser

        public WebBrowser()
    • Method Detail

      • getScreenHeight

        public int getScreenHeight()

        Gets the height of the screen in pixels. This is the full screen resolution and not the height available for the application.

        Returns:

        the height of the screen in pixels.

      • getScreenWidth

        public int getScreenWidth()

        Gets the width of the screen in pixels. This is the full screen resolution and not the width available for the application.

        Returns:

        the width of the screen in pixels.

      • getBrowserApplication

        public String getBrowserApplication()

        Get the browser user-agent string.

        Returns:

        The raw browser userAgent string

      • getAddress

        public String getAddress()

        Gets the IP-address of the web browser. If the application is running inside a portlet, this method will return null.

        Returns:

        IP-address in 1.12.123.123 -format

      • getLocale

        public Locale getLocale()

        Get the default locate of the browser.

      • isSecureConnection

        public boolean isSecureConnection()

        Is the connection made using HTTPS?

      • isFirefox

        public boolean isFirefox()

        Tests whether the user is using Firefox.

        Returns:

        true if the user is using Firefox, false if the user is not using Firefox or if no information on the browser is present

      • isIE

        public boolean isIE()

        Tests whether the user is using Internet Explorer.

        Returns:

        true if the user is using Internet Explorer, false if the user is not using Internet Explorer or if no information on the browser is present

      • isEdge

        public boolean isEdge()

        Tests whether the user is using Edge.

        Returns:

        true if the user is using Edge, false if the user is not using Edge or if no information on the browser is present

        Since:

        7.5.3

      • isSafari

        public boolean isSafari()

        Tests whether the user is using Safari. Note that Chrome on iOS is not detected as Safari but as Chrome although the underlying browser engine is the same.

        Returns:

        true if the user is using Safari, false if the user is not using Safari or if no information on the browser is present

      • isOpera

        public boolean isOpera()

        Tests whether the user is using Opera.

        Returns:

        true if the user is using Opera, false if the user is not using Opera or if no information on the browser is present

      • isChrome

        public boolean isChrome()

        Tests whether the user is using Chrome.

        Returns:

        true if the user is using Chrome, false if the user is not using Chrome or if no information on the browser is present

      • isChromeFrame

        public boolean isChromeFrame()

        Tests whether the user is using Chrome Frame.

        Returns:

        true if the user is using Chrome Frame, false if the user is not using Chrome or if no information on the browser is present

      • isChromeFrameCapable

        public boolean isChromeFrameCapable()

        Tests whether the user's browser is Chrome Frame capable.

        Returns:

        true if the user can use Chrome Frame, false if the user can not or if no information on the browser is present

      • getBrowserMajorVersion

        public int getBrowserMajorVersion()

        Gets the major version of the browser the user is using.

        Note that Internet Explorer in IE7 compatibility mode might return 8 in some cases even though it should return 7.

        Returns:

        The major version of the browser or -1 if not known.

      • getBrowserMinorVersion

        public int getBrowserMinorVersion()

        Gets the minor version of the browser the user is using.

        Returns:

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

        See Also:

        getBrowserMajorVersion()

      • getBrowserVersion

        public String getBrowserVersion()

        Gets the complete browser version as string. The version is given by the browser through the user agent string and usually consists of dot-separated numbers. Note that the string may contain characters other than dots and digits.

        Returns:

        the complete browser version or null if unknown

        Since:

        8.4

      • isLinux

        public boolean isLinux()

        Tests whether the user is using Linux.

        Returns:

        true if the user is using Linux, false if the user is not using Linux or if no information on the browser is present

      • isMacOSX

        public boolean isMacOSX()

        Tests whether the user is using Mac OS X.

        Returns:

        true if the user is using Mac OS X, false if the user is not using Mac OS X or if no information on the browser is present

      • isWindows

        public boolean isWindows()

        Tests whether the user is using Windows.

        Returns:

        true if the user is using Windows, false if the user is not using Windows or if no information on the browser is present

      • isWindowsPhone

        public boolean isWindowsPhone()

        Tests whether the user is using Windows Phone.

        Returns:

        true if the user is using Windows Phone, false if the user is not using Windows Phone or if no information on the browser is present

        Since:

        7.3.2

      • isAndroid

        public boolean isAndroid()

        Tests if the browser is run on Android.

        Returns:

        true if run on Android false if the user is not using Android or if no information on the browser is present

      • isIOS

        public boolean isIOS()

        Tests if the browser is run in iOS.

        Returns:

        true if run in iOS false if the user is not using iOS or if no information on the browser is present

      • isIPhone

        public boolean isIPhone()

        Tests if the browser is run on IPhone.

        Returns:

        true if run on IPhone false if the user is not using IPhone or if no information on the browser is present

        Since:

        7.3.3

      • isIPad

        public boolean isIPad()

        Tests if the browser is run on IPad.

        Returns:

        true if run on IPad false if the user is not using IPad or if no information on the browser is present

        Since:

        7.3.3

      • isChromeOS

        public boolean isChromeOS()

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

        Returns:

        true if run on ChromeOS false if the user is not using ChromeOS or if no information on the browser is present

        Since:

        8.1.1

      • getTimezoneOffset

        public int getTimezoneOffset()

        Returns the browser-reported TimeZone offset in milliseconds from GMT. This includes possible daylight saving adjustments, to figure out which TimeZone the user actually might be in, see getRawTimezoneOffset().

        Returns:

        timezone offset in milliseconds, 0 if not available

        See Also:

        getRawTimezoneOffset()

      • getTimeZoneId

        public String getTimeZoneId()

        Returns the TimeZone Id (like "Europe/Helsinki") provided by the browser (if the browser supports this feature).

        Returns:

        the TimeZone Id if provided by the browser, null otherwise.

        Since:

        8.2

        See Also:

        Intl.DateTimeFormat.prototype.resolvedOptions()

      • getRawTimezoneOffset

        public int getRawTimezoneOffset()

        Returns the browser-reported TimeZone offset in milliseconds from GMT ignoring possible daylight saving adjustments that may be in effect in the browser.

        You can use this to figure out which TimeZones the user could actually be in by calling TimeZone.getAvailableIDs(int).

        If getRawTimezoneOffset() and getTimezoneOffset() returns the same value, the browser is either in a zone that does not currently have daylight saving time, or in a zone that never has daylight saving time.

        Returns:

        timezone offset in milliseconds excluding DST, 0 if not available

      • getDSTSavings

        public int getDSTSavings()

        Returns the offset in milliseconds between the browser's GMT TimeZone and DST.

        Returns:

        the number of milliseconds that the TimeZone shifts when DST is in effect

      • isDSTInEffect

        public boolean isDSTInEffect()

        Returns whether daylight saving time (DST) is currently in effect in the region of the browser or not.

        Returns:

        true if the browser resides at a location that currently is in DST

      • getCurrentDate

        public Date getCurrentDate()

        Returns the current date and time of the browser. This will not be entirely accurate due to varying network latencies, but should provide a close-enough value for most cases. Also note that the returned Date object uses servers default time zone, not the clients.

        To get the actual date and time shown in the end users computer, you can do something like:

         WebBrowser browser = ...;
         SimpleTimeZone timeZone = new SimpleTimeZone(browser.getTimezoneOffset(), "Fake client time zone");
         DateFormat format = DateFormat.getDateTimeInstance();
         format.setTimeZone(timeZone);
         myLabel.setValue(format.format(browser.getCurrentDate()));
         

        Returns:

        the current date and time of the browser.

        See Also:

        isDSTInEffect(), getDSTSavings(), getTimezoneOffset()

      • isTouchDevice

        public boolean isTouchDevice()

        Returns:

        true if the browser is detected to support touch events

      • updateRequestDetails

        public void updateRequestDetails​(VaadinRequest request)

        For internal use by VaadinServlet/VaadinPortlet only. Updates all properties in the class according to the given information.

        Parameters:

        request - the Vaadin request to read the information from

      • isTooOldToFunctionProperly

        public boolean isTooOldToFunctionProperly()

        Checks if the browser is so old that it simply won't work with a Vaadin application. Can be used to redirect to an alternative page, show alternative content or similar. When this method returns true chances are very high that the browser won't work and it does not make sense to direct the user to the Vaadin application.

        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.

        Returns:

        true if the browser supports ES6, false otherwise.

        Since:

        8.1