com.vaadin.client
Class BrowserInfo

java.lang.Object
  extended by com.vaadin.client.BrowserInfo

public class BrowserInfo
extends java.lang.Object

Class used to query information about web browser. Browser details are detected only once and those are stored in this singleton class.


Field Summary
static java.lang.String ENGINE_GECKO
           
static java.lang.String ENGINE_PRESTO
           
static java.lang.String ENGINE_TRIDENT
           
static java.lang.String ENGINE_WEBKIT
           
 
Method Summary
static BrowserInfo get()
          Singleton method to get BrowserInfo object.
 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.
static java.lang.String getBrowserString()
           
 java.lang.String getCSSClass()
          Returns a string representing the browser in use, for use in CSS classnames.
 float getGeckoVersion()
          Returns the Gecko version if the browser is Gecko based.
 float getIEVersion()
           
 float getOperaVersion()
           
 int getScreenHeight()
           
 int getScreenWidth()
           
 float getWebkitVersion()
          Returns the WebKit version if the browser is WebKit based.
 boolean isAndroid()
          Checks if the browser is run on Android
 boolean isAndroid23()
           
 boolean isAndroidWithBrokenScrollTop()
          Tests if this is an Android devices with a broken scrollTop implementation
 boolean isBrowserVersionNewerOrEqual(int majorVersion, int minorVersion)
          Checks if the browser version is newer or equal to the given major+minor version.
 boolean isChrome()
           
 boolean isEdge()
           
 boolean isFirefox()
           
 boolean isGecko()
           
 boolean isIE()
           
 boolean isIE10()
           
 boolean isIE11()
           
 boolean isIE8()
           
 boolean isIE9()
           
 boolean isIOS()
          Checks if the browser is run on iOS
 boolean isIOS6()
          Checks if the browser is run on iOS 6.
 boolean isOpera()
           
 boolean isOpera10()
           
 boolean isOpera11()
           
 boolean isSafari()
           
 boolean isTouchDevice()
           
 boolean isWebkit()
           
 boolean requiresOverflowAutoFix()
          Indicates whether the browser might require juggling to properly update sizes inside elements with overflow: auto.
 boolean requiresPositionAbsoluteOverflowAutoFix()
          Indicates whether the browser might require juggling to properly update sizes inside elements with overflow: auto when adjusting absolutely positioned elements.
 boolean requiresTouchScrollDelegate()
          Checks if the browser is capable of handling scrolling natively or if a touch scroll helper is needed for scrolling.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ENGINE_GECKO

public static final java.lang.String ENGINE_GECKO
See Also:
Constant Field Values

ENGINE_WEBKIT

public static final java.lang.String ENGINE_WEBKIT
See Also:
Constant Field Values

ENGINE_PRESTO

public static final java.lang.String ENGINE_PRESTO
See Also:
Constant Field Values

ENGINE_TRIDENT

public static final java.lang.String ENGINE_TRIDENT
See Also:
Constant Field Values
Method Detail

get

public static BrowserInfo get()
Singleton method to get BrowserInfo object.

Returns:
instance of BrowserInfo object

getCSSClass

public java.lang.String getCSSClass()
Returns a string representing the browser in use, for use in CSS classnames. The classnames will be space separated abbreviations, optionally with a version appended. Abbreviations: Firefox: ff Internet Explorer: ie Safari: sa Opera: op Browsers that CSS-wise behave like each other will get the same abbreviation (this usually depends on the rendering engine). This is quite simple at the moment, more heuristics will be added when needed. Examples: Internet Explorer 6: ".v-ie .v-ie6 .v-ie60", Firefox 3.0.4: ".v-ff .v-ff3 .v-ff30", Opera 9.60: ".v-op .v-op9 .v-op960", Opera 10.10: ".v-op .v-op10 .v-op1010"

Returns:

isIE

public boolean isIE()

isEdge

public boolean isEdge()

isFirefox

public boolean isFirefox()

isSafari

public boolean isSafari()

isIE8

public boolean isIE8()

isIE9

public boolean isIE9()

isIE10

public boolean isIE10()

isIE11

public boolean isIE11()

isChrome

public boolean isChrome()

isGecko

public boolean isGecko()

isWebkit

public boolean isWebkit()

getGeckoVersion

public float getGeckoVersion()
Returns the Gecko version if the browser is Gecko based. The Gecko version for Firefox 2 is 1.8 and 1.9 for Firefox 3.

Returns:
The Gecko version or -1 if the browser is not Gecko based

getWebkitVersion

public float getWebkitVersion()
Returns the WebKit version if the browser is WebKit based. The WebKit version returned is the major version e.g., 523.

Returns:
The WebKit version or -1 if the browser is not WebKit based

getIEVersion

public float getIEVersion()

getOperaVersion

public float getOperaVersion()

isOpera

public boolean isOpera()

isOpera10

public boolean isOpera10()

isOpera11

public boolean isOpera11()

getBrowserString

public static java.lang.String getBrowserString()

getScreenWidth

public int getScreenWidth()

getScreenHeight

public int getScreenHeight()

isTouchDevice

public boolean isTouchDevice()
Returns:
true if the browser runs on a touch based device.

requiresOverflowAutoFix

public boolean requiresOverflowAutoFix()
Indicates whether the browser might require juggling to properly update sizes inside elements with overflow: auto.

Returns:
true if the browser requires the workaround, otherwise false

requiresPositionAbsoluteOverflowAutoFix

public boolean requiresPositionAbsoluteOverflowAutoFix()
Indicates whether the browser might require juggling to properly update sizes inside elements with overflow: auto when adjusting absolutely positioned elements.

See https://bugs.webkit.org/show_bug.cgi?id=123958 and http://code.google.com/p/chromium/issues/detail?id=316549

Returns:
true if the browser requires the workaround, otherwise false
Since:
7.1.8

isIOS

public boolean isIOS()
Checks if the browser is run on iOS

Returns:
true if the browser is run on iOS, false otherwise

isIOS6

public boolean isIOS6()
Checks if the browser is run on iOS 6.

Returns:
true if the browser is run on iOS 6, false otherwise
Since:
7.1.1

isAndroid

public boolean isAndroid()
Checks if the browser is run on Android

Returns:
true if the browser is run on Android, false otherwise

requiresTouchScrollDelegate

public boolean requiresTouchScrollDelegate()
Checks if the browser is capable of handling scrolling natively or if a touch scroll helper is needed for scrolling.

Returns:
true if browser needs a touch scroll helper, false if the browser can handle scrolling natively

isAndroidWithBrokenScrollTop

public boolean isAndroidWithBrokenScrollTop()
Tests if this is an Android devices with a broken scrollTop implementation

Returns:
true if scrollTop cannot be trusted on this device, false otherwise

isAndroid23

public boolean isAndroid23()

getBrowserMajorVersion

public 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 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()

isBrowserVersionNewerOrEqual

public boolean isBrowserVersionNewerOrEqual(int majorVersion,
                                            int minorVersion)
Checks if the browser version is newer or equal to the given major+minor version.

Parameters:
majorVersion - The major version to check for
minorVersion - The minor version to check for
Returns:
true if the browser version is newer or equal to the given version


Copyright © 2000-2014 Vaadin Ltd. All Rights Reserved.