## com.cyscape.browserhawk
Class ExtendedBrowserInfo

    java.lang.Object
      com.cyscape.browserhawk.ExtendedBrowserInfo

All Implemented Interfaces:
  java.io.Serializable, java.lang.Cloneable

    public class ExtendedBrowserInfo

extends java.lang.Object
implements java.io.Serializable, java.lang.Cloneable

Class for accessing extended properties. For extra details about these properties see the "Property Reference Guide" section of the documentation at http://browserhawk.com/docs/browserhawk.htm. Note that those pages are designed for the ASP version but are highly relevant to the Java version as well.

Testing of extended properties requires at least the BrowserHawk Professional Edition, and many of the tests require the Enterprise Edition. It is noted in the property details which edition is required for each property. For convenience, here is a list of properties that require the Enterprise Edition: ActiveXEnabled, VBScriptEnabled, Plugin_JavaVer, Plugin_iPIXViewer, Plugin_CrystalReports, Plugin_Citrix, Plugin_Mapguide, JavaVersion, JavaVendor, MSXML, TextSize, BrowserBuild, VBScriptBuild, JavaScriptBuild, NetMeetingBuild, MSJVMBuild, ServicePack, Firewall, OpenPorts, SSLEnabled, SSLKeySize, Plugin_Custom, PopupsBlocked, and FontsInstalled.

See Also:
  Serialized Form

Field Summary
`static long` | `ACTIVEXENABLED` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `ALL` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `BROWSERBUILD` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `BROWSERDATETIME` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `BROWSERDATETIMEMS` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `BROWSERSIZE` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `COLORDEPTH` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `CONNECTIONSPEED` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `CONNECTIONTYPE` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `COOKIEBOTH` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `COOKIEPERM` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `COOKIESESS` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `DEFAULT` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `FIREWALL` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `FONTSINSTALLED` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `FONTSMOOTHING` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `HEIGHT` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `HEIGHTAVAIL` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `IMAGESENABLED` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `JAVAENABLED` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `JAVASCRIPTBUILD` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `JAVASCRIPTENABLED` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `JAVAVENDOR` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `JAVAVERSION` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `LANGSYSTEM` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `LANGUSER` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `MSJVMBUILD` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `MSXML` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `NETMEETINGBUILD` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `OPENPORTS` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `PLUGIN_ACROBAT` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `PLUGIN_ACROBATVEREX` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `PLUGIN_ALL` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `PLUGIN_AUTHORWARE` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `PLUGIN_CITRIX` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `PLUGIN_CRYSTALREPORTS` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `PLUGIN_CUSTOM` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `PLUGIN_DIRECTOR` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `PLUGIN_DIRECTORVEREX` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `PLUGIN_FLASH` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `PLUGIN_FLASHVEREX` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `PLUGIN_IPIXVIEWER` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `PLUGIN_JAVAVER` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `PLUGIN_MAPGUIDE` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `PLUGIN_MEDIAPLAYER` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `PLUGIN_MEDIAPLAYERVEREX` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `PLUGIN_NETMEETINGBUILD` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `PLUGIN_NONE` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `PLUGIN_QUICKTIME` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `PLUGIN_QUICKTIMEVEREX` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `PLUGIN_REALPLAYER` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `PLUGIN_REALPLAYERBUILD` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `PLUGIN_SVGVIEWER` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `PLUGIN_VIEWPOINT` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `POPUPSBLOCKED` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `REFERRER` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `SCREENSIZE` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `SERVICEPACK` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `SSLENABLED` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `SSLKEYSIZE` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `TEXTSIZE` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `TIMEZONEDIFF` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static ExtendedBrowserInfo` | `UNSUPPORTED`
`static long` | `VBSCRIPTBUILD` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `VBSCRIPTENABLED` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `WIDTH` Deprecated. Due to 64-bit limitations please use the String-based property names instead
`static long` | `WIDTHAVAIL` Deprecated. Due to 64-bit limitations please use the String-based property names instead

Constructor Summary
`ExtendedBrowserInfo(BrowserInfo i)`

Method Summary
`java.lang.Object` | `clone()`
`java.lang.Object` | `get(java.lang.String propertyName)` Returns the value of the property whose name is specified as a String.
`boolean` | `getActiveXEnabled()` Returns true if the browser has ActiveX controls enabled, or false if ActiveX controls are disabled.
`boolean` | `getBroadband()` Returns whether the client is connected on a broadband connection.
`int` | `getBrowserBitSize()` Returns either 32 or 64 depending on the visitor's browser bit size.
`java.lang.String` | `getBrowserBuild()` Returns a string containing the build number of the browser.
`java.lang.String` | `getBrowserDateTime()` Returns a formatted string containing the current date/time as set on client's machine (where the browser is running from).
`long` | `getBrowserDateTimeMs()` Returns the number of milliseconds on the user's browser that has elapsed since January 1, 1970.
`int` | `getColorDepth()` Returns the number of color bits the visitor's screen resolution is set to.
`int` | `getConnectionLatency()` Returns the visitor's connection latency, in milliseconds.
`int` | `getConnectionSpeed()` Returns the visitor's connection speed throughput in bits per second (note it's bits and not bytes).
`java.lang.String` | `getConnectionType()` Returns a string indicating the type of network connection the visitor is using.
`java.lang.String` | `getContainerBrowser()` Returns the browser, if any, that surrounds the browsing environment.
`java.lang.String` | `getContainerFullversion()` Returns the full version of the browser, if any, that surrounds the browsing environment.
`double` | `getContainerVersion()` Returns the version of the browser, if any, that surrounds the browsing environment.
`int` | `getDisplayXDPIActual()` Retrieves the actual number of horizontal dots per inch (DPI) of the client system's screen.
`int` | `getDisplayXDPILogical()` Retrieves the normal number of horizontal dots per inch (DPI) of the client system's screen.
`int` | `getDisplayYDPIActual()` Retrieves the actual number of vertical dots per inch (DPI) of the client system's screen.
`int` | `getDisplayYDPILogical()` Retrieves the normal number of vertical dots per inch (DPI) of the client system's screen.
`java.lang.String` | `getDownloadTimeDesc(long filesize)` Returns the time to download a file of the given size, using an English text description like "3 hours, 5 minutes", based on the calculated connection speed of the client.
`java.lang.String` | `getDownloadTimeDesc(java.lang.String filename)` Returns the time to download the given file, using an English text description like "3 hours, 5 minutes", based on the size of the file and the calculated connection speed of the client.
`int` | `getDownloadTimeSec(long filesize)` Returns the time to download a file of the given size, in seconds, based on the calculated connection speed of the client.
`int` | `getDownloadTimeSec(java.lang.String filename)` Returns the time to download the given filen, in seconds, based on the size of the file and the calculated connection speed of the client.
`boolean` | `getFirewall()` Returns true if the client is behind a firewall (either hardware or software based) that is blocking most ports from outbound traffic on the visitor's machine.
`boolean` | `getFontInstalled(java.lang.String font)` Returns a boolean indicating whether a particular font name is installed on the browser.
`java.lang.String` | `getFontsInstalled()` Returns a comma-separated list of font names that are installed on the browser which you requested be checked using the ExtendedOptions setFontsToCheck() method.
`boolean` | `getFontSmoothing()` Returns true if the user has checked the Smooth Edges of Screen Fonts option under Control Panel Display options.
`static ExtendedBrowserInfo` | `getFromCache(javax.servlet.http.HttpServletRequest req, java.lang.String token)` Returns the ExtendedBrowserInfo held in the user's session under the given token, or null if no instance was being held or if the object held under that token was not an ExtendedBrowserInfo instance.
`int` | `getHeight()` Returns the height of the visitor's screen size resolution.
`int` | `getHeightAvail()` Returns the actual amount of height available in the browser window itself.
`boolean` | `getHighSecurity()` Returns whether the visitor was found to be in "high security" mode (a mode where many things are disabled such as JavaScript and meta refresh auto-redirecting back to the server).
`boolean` | `getImagesEnabled()` Returns whether the browser has images support enabled, meaning images will be downloaded and displayed.
`boolean` | `getJavaEnabled()` Returns whether the browser currently has Java enabled.
`java.lang.String` | `getJavaScriptBuild()` Returns the build number of the currently installed JavaScript engine.
`boolean` | `getJavaScriptEnabled()` Returns whether the browser currently has JavaScript enabled.
`java.lang.String` | `getJavaVendor()` Returns the vendor of the Java Virtual Machine (JVM) version that an applet will execute under, or null if it cannot be determined or if no JVM is installed.
`java.lang.String` | `getJavaVersion()` Returns the Java Virtual Machine (JVM) version that an applet will execute under if invoked with the <applet> tag.
`java.lang.Object` | `getJSEval(java.lang.String name)` Returns the result of the JavaScript execution for the code block identified by 'name', as set by the ExtendedOptions setJSEval() method.
`java.util.Set` | `getJSEvalNames()` Returns the names assigned for all JavaScript code blocks previously set when calling the ExtendedOptions setJSEval() method.
`java.lang.String` | `getLangSystem()` Returns a string indicating the language code corresponding to the language edition of the installed operating system.
`java.lang.String` | `getLangUser()` Returns a string indicating the language code corresponding to the regional settings for the user, if using IE.
`java.lang.String` | `getMSJVMBuild()` Returns the DLL build number of the Microsoft JVM, if installed.
`int` | `getMSXML()` Returns the version number of the Microsoft XML Parser installed under IE browsers, 0 if not installed, or -1 if not detectable with the current browser.
`java.lang.String` | `getNetMeetingBuild()` Returns the build number of the Microsoft NetMeeting control, if installed.
`java.lang.String` | `getOpenPorts()` Returns the ports that are open out of the list requested to be tested, where open means the browser can connect to servers (at least the test server) using that port.
`java.lang.String` | `getOSArch()` Returns the operating system architecture of the client machine, as reported via Java applet system properties.
`int` | `getOSBitSize()` Returns either 32 or 64 depending on the visitor's OS bit size.
`java.lang.String` | `getOSDetails()` Returns a human-friendly description of the operating system name.
`java.lang.String` | `getOSName()` Returns the operating system name of the client OS.
`java.lang.String` | `getOSVersion()` Returns the operating system version of the client machine.
`boolean` | `getPersistentCookies()` Returns whether the browser currently has enabled persistent cookies.
`int` | `getPluginAcrobat()` Returns an integer indicating whether the visitor's browser has the Adobe Acrobat plug-in is installed.
`java.lang.String` | `getPluginAcrobatVerEx()` Returns a string with the version number of the Adobe Acrobat plug-in, if installed.
`int` | `getPluginAuthorware()` Returns an integer indicating whether the user has the Macromedia Authorware plug-in installed.
`int` | `getPluginCitrix()` Returns an integer indicating whether the user has the Citrix viewer plug-in installed.
`int` | `getPluginCrystalReports()` Returns an integer indicating whether the user has the Seagate Crystal Reports plug-in installed.
`int` | `getPluginCustom()` Returns an integer indicating whether the visitor's browser has the plug-in specified by the ExtPropCustomPluginID property installed.
`int` | `getPluginDirector()` Returns an integer indicating whether the visitor's browser has the Macromedia Director plug-in installed.
`java.lang.String` | `getPluginDirectorVerEx()` Returns a string with the build number of the Macromedia Director (shockwave) plug-in, if installed.
`int` | `getPluginFlash()` Returns the version of the visitor's Macromedia Flash plug-in if installed.
`int` | `getPluginFlashBlocked()` Detects if Flash is blocked from running by default, returning 1 if blocked, 0 if not blocked, -1 if it's not possible to know for this visitor because Flash 10 or greater isn't present, and -2 if the property test wasn't requested.
`java.lang.String` | `getPluginFlashVerEx()` Returns a string with the build number of the Macromedia Flash plug-in, if installed.
`java.lang.String` | `getPluginFlip4Mac()` Returns the version of the Flip4Mac plugin, or null if not installed or not tested.
`int` | `getPluginIPIXViewer()` Returns an integer indicating whether the user has the iPIX image viewer plug-in installed.
`java.lang.String` | `getPluginJavaVer()` Returns a string with the build number of the Java plug-in, if installed, or null if the plug-in is not installed or the version can't be determined.
`int` | `getPluginMapguide()` Returns an integer indicating whether the user has the Autodesk MapGuide plug-in installed.
`int` | `getPluginMediaPlayer()` Returns an integer indicating whether the visitor's browser has the Windows Media Player installed.
`java.lang.String` | `getPluginMediaPlayerVerEx()` Returns a string with the build number of the Media Player plug-in, if installed.
`java.lang.String` | `getPluginNetMeetingBuild()` Returns the build number of the Microsoft NetMeeting control, if installed.
`int` | `getPluginQuickTime()` Returns an integer indicating whether the visitor's browser has the Apple QuickTime plug-in is installed.
`java.lang.String` | `getPluginQuickTimeVerEx()` Returns a string with the version number of the Apple QuickTime Player plug-in, if installed.
`int` | `getPluginRealPlayer()` Returns an integer indicating whether the RealPlayer installed and, if so, what type of player it is.
`java.lang.String` | `getPluginRealPlayerBuild()` Returns a string with the build number of the RealPlayer plug-in.
`int` | `getPluginSilverlight()`
`java.lang.String` | `getPluginSilverlightVerEx()`
`int` | `getPluginSVGViewer()` Returns an integer indicating whether the user has the Adobe SVG image viewer plug-in installed.
`int` | `getPluginViewpoint()` Returns an integer indicating whether the user has the Viewpoint plug-in installed.
`boolean` | `getPopupsBlocked()` Returns whether the visitor has popup windows blocked.
`java.lang.String` | `getReferrer()` Returns the URL of the referring page, if any.
`java.lang.String` | `getServicePack()` Returns the browser's service pack level as a string, if any.
`boolean` | `getSessionCookies()` Returns whether the browser currently has enabled session cookies.
`boolean` | `getSSLEnabled()` Returns whether the browser has SSL support enabled per the browser's configuration.
`int` | `getSSLKeySize()` Returns the key size for the SSL session as determined by running an SSL request against a test server for measurement.
`int` | `getTextSize()` Returns an integer representing the text size selection the user has made from the View->Text Size menu of IE 5 or later on Windows.
`double` | `getTimeZoneDiff()` Returns the time zone difference in hours between the time zone the browser is running in and the time zone your web server is running in.
`int` | `getUploadConnectionLatency()` Returns the visitor's upload connection latency, in milliseconds.
`int` | `getUploadConnectionSpeed()` Returns the visitor's upload connection speed throughput in bits per second (note it's bits and not bytes).
`java.lang.String` | `getVBScriptBuild()` Returns the build number of the currently installed VBScript engine.
`boolean` | `getVBScriptEnabled()` Returns true if the browser has VBScript enabled and working properly, or false if VBScript is disabled or not installed properly.
`int` | `getWidth()` Returns the width of the visitor's screen size resolution.
`int` | `getWidthAvail()` Returns the width of the visitor's browser window.
`static boolean` | `isExtendedProperty(java.lang.String propertyName)` Returns true if the specified property is an extended property.
`boolean` | `isFromCache()` Returns whether this ExtendedBrowserInfo instance was pulled from the session cache or was calculated fresh by performing client-side JavaScript tests.
`java.lang.String` | `toString()`
`java.lang.String` | `toXML()` Returns an XML representation of the tested extended properties and teir associated values for the current browser request.
`java.lang.String` | `toXML(java.util.Properties props)` Returns an XML representation of the tested extended properties and teir associated values for the current browser request.
`java.lang.String` | `translate(java.lang.String key)` Returns a human-readable String explaining the value of a variable, as given by a "key" string.

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### PLUGIN_NONE

    public static final long PLUGIN_NONE

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### PLUGIN_FLASH

    public static final long PLUGIN_FLASH

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### PLUGIN_DIRECTOR

    public static final long PLUGIN_DIRECTOR

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### PLUGIN_MEDIAPLAYER

    public static final long PLUGIN_MEDIAPLAYER

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### PLUGIN_REALPLAYER

    public static final long PLUGIN_REALPLAYER

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### PLUGIN_QUICKTIME

    public static final long PLUGIN_QUICKTIME

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### PLUGIN_ACROBAT

    public static final long PLUGIN_ACROBAT

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### PLUGIN_FLASHVEREX

    public static final long PLUGIN_FLASHVEREX

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### VBSCRIPTENABLED

    public static final long VBSCRIPTENABLED

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### ACTIVEXENABLED

    public static final long ACTIVEXENABLED

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### VBSCRIPTBUILD

    public static final long VBSCRIPTBUILD

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### REFERRER

    public static final long REFERRER

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### JAVAENABLED

    public static final long JAVAENABLED

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### COOKIESESS

    public static final long COOKIESESS

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### COOKIEPERM

    public static final long COOKIEPERM

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### COOKIEBOTH

    public static final long COOKIEBOTH

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### PLUGIN_DIRECTORVEREX

    public static final long PLUGIN_DIRECTORVEREX

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### PLUGIN_MEDIAPLAYERVEREX

    public static final long PLUGIN_MEDIAPLAYERVEREX

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### COLORDEPTH

    public static final long COLORDEPTH

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### CONNECTIONTYPE

    public static final long CONNECTIONTYPE

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### HEIGHT

    public static final long HEIGHT

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### WIDTH

    public static final long WIDTH

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### HEIGHTAVAIL

    public static final long HEIGHTAVAIL

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### WIDTHAVAIL

    public static final long WIDTHAVAIL

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### PLUGIN_IPIXVIEWER

    public static final long PLUGIN_IPIXVIEWER

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### JAVASCRIPTENABLED

    public static final long JAVASCRIPTENABLED

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### PLUGIN_SVGVIEWER

    public static final long PLUGIN_SVGVIEWER

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### PLUGIN_CRYSTALREPORTS

    public static final long PLUGIN_CRYSTALREPORTS

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### PLUGIN_VIEWPOINT

    public static final long PLUGIN_VIEWPOINT

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### PLUGIN_AUTHORWARE

    public static final long PLUGIN_AUTHORWARE

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### PLUGIN_MAPGUIDE

    public static final long PLUGIN_MAPGUIDE

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### PLUGIN_CITRIX

    public static final long PLUGIN_CITRIX

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### JAVAVERSION

    public static final long JAVAVERSION

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### MSXML

    public static final long MSXML

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### TEXTSIZE

    public static final long TEXTSIZE

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### JAVASCRIPTBUILD

    public static final long JAVASCRIPTBUILD

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### TIMEZONEDIFF

    public static final long TIMEZONEDIFF

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### BROWSERDATETIME

    public static final long BROWSERDATETIME

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### BROWSERBUILD

    public static final long BROWSERBUILD

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### FONTSMOOTHING

    public static final long FONTSMOOTHING

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### LANGSYSTEM

    public static final long LANGSYSTEM

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### LANGUSER

    public static final long LANGUSER

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### MSJVMBUILD

    public static final long MSJVMBUILD

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### PLUGIN_JAVAVER

    public static final long PLUGIN_JAVAVER

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### JAVAVENDOR

    public static final long JAVAVENDOR

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### PLUGIN_QUICKTIMEVEREX

    public static final long PLUGIN_QUICKTIMEVEREX

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### PLUGIN_REALPLAYERBUILD

    public static final long PLUGIN_REALPLAYERBUILD

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### NETMEETINGBUILD

    public static final long NETMEETINGBUILD

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### PLUGIN_NETMEETINGBUILD

    public static final long PLUGIN_NETMEETINGBUILD

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### PLUGIN_ACROBATVEREX

    public static final long PLUGIN_ACROBATVEREX

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### BROWSERDATETIMEMS

    public static final long BROWSERDATETIMEMS

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### CONNECTIONSPEED

    public static final long CONNECTIONSPEED

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### SERVICEPACK

    public static final long SERVICEPACK

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### FIREWALL

    public static final long FIREWALL

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### OPENPORTS

    public static final long OPENPORTS

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### IMAGESENABLED

    public static final long IMAGESENABLED

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### SSLENABLED

    public static final long SSLENABLED

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### SSLKEYSIZE

    public static final long SSLKEYSIZE

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### PLUGIN_CUSTOM

    public static final long PLUGIN_CUSTOM

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### POPUPSBLOCKED

    public static final long POPUPSBLOCKED

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### FONTSINSTALLED

    public static final long FONTSINSTALLED

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### SCREENSIZE

    public static final long SCREENSIZE

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### BROWSERSIZE

    public static final long BROWSERSIZE

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### PLUGIN_ALL

    public static final long PLUGIN_ALL

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### DEFAULT

    public static final long DEFAULT

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### ALL

    public static final long ALL

  Deprecated. Due to 64-bit limitations please use the String-based property names instead
  See Also:
    Constant Field Values

### UNSUPPORTED

    public static final ExtendedBrowserInfo UNSUPPORTED

Constructor Detail

### ExtendedBrowserInfo

    public ExtendedBrowserInfo(BrowserInfo i)

Method Detail

### translate

    public java.lang.String translate(java.lang.String key)

  Returns a human-readable String explaining the value of a variable, as given by a "key" string. Where appropriate and possible, it explains the reason a variables might not be available. Some example key values are: Plugin_Flash, Plugin_Director, Plugin_MediaPlayer, Plugin_RealPlayer, Plugin_Acrobat, Plugin_QuickTime, ConnectionType, ScreenSize, BrowserSize, JavaApplets, and ColorDepth.

### getJavaScriptEnabled

    public boolean getJavaScriptEnabled()

  Returns whether the browser currently has JavaScript enabled.

  Requires BrowserHawk Professional or Enterprise Edition.

### getJavaEnabled

    public boolean getJavaEnabled()

  Returns whether the browser currently has Java enabled. It is not possible to detect disabled Java applets for visitors using Microsoft Internet Explorer versions 3.0 or 3.01. Nor is it always reliable with Netscape 6.0 or later on Macintosh, and Mozilla 1.4 or later on Macintosh, due to Mozilla bug 97613. For these three browsers JavaEnabled may return false even if the visitor's Java is enabled.

  Under Netscape 6 the getJavaEnabled() method may return true but the browser will only be able to run your applet if they have the Java plug-in is installed. When testing if Java is enabled under Netscape 6 you must also check the getPluginJavaVer() method - if getJavaEnabled() is true AND getPluginJavaVer() is not "" then Java is enabled and available. Otherwise it is not, and if you try to put an applet on the page under this circumstance the browser will display 'Click here to get plugin'. Likewise you can also detect when no Java is available under Netscape 6.0 by checking the getJavaVersion() method to see if it is a negative value.

  Requires BrowserHawk Professional or Enterprise Edition.

### getHeight

    public int getHeight()

  Returns the height of the visitor's screen size resolution. For example, a visitor with their screen resolution set to 1024x768 would return 768. Not all browsers are capable of having their screen detected. In this case the values that cannot be determined will be 0. You should check for 0 and use a default value of your choice. For example, if Height comes back 0 you may wish to use 600 as a default (assume 800x600 screen size).

  Requires BrowserHawk Professional or Enterprise Edition.

### getHeightAvail

    public int getHeightAvail()

  Returns the actual amount of height available in the browser window itself. Items such as task bars, scroll bars, browser navigation, and other such screen elements typically account for the difference between HeightAvail and Height. Not all browsers are capable of having their browser window size detected. You should test this property for a value of 0 and use a predetermined default value appropriate for your site if the result is 0. If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Professional or Enterprise Edition.

### getWidth

    public int getWidth()

  Returns the width of the visitor's screen size resolution. For example, a visitor with their screen resolution set to 1024x768 would return 1024. Not all browsers are capable of having their screen size detected. In this case the values that cannot be determined will be 0. You should check for 0 and use a default value of your choice. For example, if width comes back 0 you may wish to use 800 as a default (assume a screen size of 800x600). If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Professional or Enterprise Edition.

### getWidthAvail

    public int getWidthAvail()

  Returns the width of the visitor's browser window. For example, a visitor with their screen resolution set to 1024x768 may return 982. Items such as task bars, scroll bars, browser navigation, and other such screen elements typically account for the difference between WidthAvail and Width. Not all browsers are capable of having their browser window size detected. You should test this property for a value of 0 and use a predetermined default value appropriate for your site if the result is 0. If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Professional or Enterprise Edition.

### getPluginFlash

    public int getPluginFlash()

  Returns the version of the visitor's Macromedia Flash plug-in if installed. If it is not possible to detect if the plug-in is installed, -1 is returned. If the plug-in is not installed, 0 is returned. Otherwise the version of Flash installed is returned (for example, 4). Not all browsers are capable of having their plugins detected. If the user's JavaScript is disabled this property will not be available.

  It is possible under IE for Windows that this method will return 0, while the getPluginFlashVerEx() method returns a valid version number. This can happen if the user has ActiveX controls disabled. In this scenario, getPluginFlash() still returns 0 to indicate that the player is not available. If you truly want to test whether the Player is installed, as opposed to whether it is available to your application, you should use the getPluginFlashVerEx() method instead. In summary, a value of 0 for getPluginFlash() does not necessarily mean that the plug-in is not installed as much as it means that it is unavailable (either because it is not installed or because of security settings in the browser).

  Requires BrowserHawk Professional or Enterprise Edition.

### getPluginFlashVerEx

    public java.lang.String getPluginFlashVerEx()

  Returns a string with the build number of the Macromedia Flash plug-in, if installed. For example, "5,0,2,12" under IE on Window, or "5.0 r12" under Netscape. Special notes for this property:
  - Not all browsers are capable of having their plug-ins detected. If this is the case the return value will be a null string.
  - If the user's JavaScript is disabled this property will not be available.
  - The format of this property is different for IE on Windows vs. all other platforms. IE on Windows will return the string in "x,y,z,a" format, whereas all other platforms will be in a different format such as "x.z r z" format (i.e. "5,0,2,12" vs. "5.0 r12").

  Requires BrowserHawk Professional or Enterprise Edition.

### getPluginDirector

    public int getPluginDirector()

  Returns an integer indicating whether the visitor's browser has the Macromedia Director plug-in installed. The returned value will be 0 if the Director plug-in is not installed, 1 if the Director plug-in is installed, or -1 if it is not possible to detect if the plug-in is installed. Not all browsers are capable of having their plugins detected. If this is the case the return value will be -1. If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Professional or Enterprise Edition.

### getPluginDirectorVerEx

    public java.lang.String getPluginDirectorVerEx()

  Returns a string with the build number of the Macromedia Director (shockwave) plug-in, if installed. For example, "6,0,1,21" under IE for Windows or "6.0" under Netscape. Special notes for this property:
  - Not all browsers are capable of having their plug-ins detected. If this is the case the return value will be a null string.
  - If the user's JavaScript is disabled this property will not be available.
  - The format of this property is different for IE on Windows vs. all other platforms. IE on Windows will return the string in "x,y,z,a" format, whereas all other platforms will be in "x.z" format (i.e. 6,0,1,21 vs. 6.01).

  Requires BrowserHawk Professional or Enterprise Edition.

### getPluginQuickTime

    public int getPluginQuickTime()

  Returns an integer indicating whether the visitor's browser has the Apple QuickTime plug-in is installed. The returned value will be 0 if the QuickTime plug-in is not installed, 1 if it is installed, or -1 if it is not possible to detect whether this plug-in is installed. Not all browsers are capable of having their plugins detected. If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Professional or Enterprise Edition.

### getPluginAcrobat

    public int getPluginAcrobat()

  Returns an integer indicating whether the visitor's browser has the Adobe Acrobat plug-in is installed. The returned value will be 0 if the Acrobat plug-in is not installed, 1 if it is installed, or -1 if it is not possible to detect whether this plug-in is installed. Not all browsers are capable of having their plugins detected. If the user's JavaScript is disabled this property will not be available. When checking for this plug-in, some users of Internet Explorer with Acrobat 4 will see the Acrobat splash screen displayed briefly. This is an unfortunate side effect that cannot be worked around.

  Requires BrowserHawk Professional or Enterprise Edition.

### getPluginRealPlayer

    public int getPluginRealPlayer()

  Returns an integer indicating whether the RealPlayer installed and, if so, what type of player it is. The returned value will be one of the following:
  - 0: The plug-in is not installed
  - 1: The original RealPlayer is installed
  - 2: The RealVideo player is installed
  - 3: The RealPlayer G2 plug-in is installed
  - 4-6: Not used
  - 7: RealPlayer 7 installed
  - 8: RealPlayer 8 installed
  - -1: It is not possible to detect if the plug-in is installed
  If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Professional or Enterprise Edition.

### getPluginMediaPlayer

    public int getPluginMediaPlayer()

  Returns an integer indicating whether the visitor's browser has the Windows Media Player installed. The returned value will be 0 if Windows Media Player is not installed, 1 if it is installed, or -1 if it is not possible to detect whether it is installed. Not all browsers are capable of having their plugins detected. If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Professional or Enterprise Edition.

### getPluginMediaPlayerVerEx

    public java.lang.String getPluginMediaPlayerVerEx()

  Returns a string with the build number of the Media Player plug-in, if installed. For example, "6,0,14,20" under IE on Windows and "6.0" under Netscape. The returned value is null if no version could be detected. If the user's JavaScript is disabled this property will not be available. The format of this property is different for IE on Windows vs. all other platforms. IE on Windows will return the string in "x,y,z,a" format, whereas all other platforms will be in "x.z" format (i.e. 6,0,1,21 vs. 6.01).

  Requires BrowserHawk Professional or Enterprise Edition.

### getConnectionType

    public java.lang.String getConnectionType()

  Returns a string indicating the type of network connection the visitor is using. Possible return values are "lan", "modem", "offline" and an empty string if not detectable. Special notes for this property:
  - This property is only available for IE 5 and higher on Windows, and returns null with other browsers.
  - The return value of "offline" indicates the user has select Work Offline from the IE File menu. It is not possible for a site visitor to execute your web script when working in offline mode. However as the developer of the web site, you can experience this return value when testing your scripts locally and working in offline mode.
  - If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Professional or Enterprise Edition.

### getColorDepth

    public int getColorDepth()

  Returns the number of color bits the visitor's screen resolution is set to. With this information you can know whether the full color palette is supported or whether to use a limited palette. Possible return values include 8, 16, 24, 32, and 36. Not all browsers are capable of having their screen color bits detected. If it is not possible to detect the color bits, the returned value is -1.

  Requires BrowserHawk Professional or Enterprise Edition.

### getActiveXEnabled

    public boolean getActiveXEnabled()

  Returns true if the browser has ActiveX controls enabled, or false if ActiveX controls are disabled. ActiveX controls are only available with IE under the Windows 32 and 64-bit platforms. For all other browsers and platforms this property will always return false. If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Enterprise Edition.

### getVBScriptEnabled

    public boolean getVBScriptEnabled()

  Returns true if the browser has VBScript enabled and working properly, or false if VBScript is disabled or not installed properly. This property is only available with IE under the Windows 32 and 64-bit platforms. For all other browsers and platforms this property will always return false. If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Enterprise Edition.

### getPluginIPIXViewer

    public int getPluginIPIXViewer()

  Returns an integer indicating whether the user has the iPIX image viewer plug-in installed. The returned value will be one of the following:
  - 0: The plug-in is not installed
  - 1: The plug-in is installed
  - -1: It is not possible to detect if the plug-in is installed
  If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Enterprise Edition.

### getPluginSVGViewer

    public int getPluginSVGViewer()

  Returns an integer indicating whether the user has the Adobe SVG image viewer plug-in installed. The returned value will be one of the following:
  - 0: The plug-in is not installed
  - 1: The plug-in is installed
  - -1: It is not possible to detect if the plug-in is installed
  If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Professional or Enterprise Edition.

### getPluginCrystalReports

    public int getPluginCrystalReports()

  Returns an integer indicating whether the user has the Seagate Crystal Reports plug-in installed. The returned value will be one of the following:
  - 0: The plug-in is not installed
  - 1: The plug-in is installed
  - -1: It is not possible to detect if the plug-in is installed
  If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Enterprise Edition.

### getPluginCitrix

    public int getPluginCitrix()

  Returns an integer indicating whether the user has the Citrix viewer plug-in installed. The returned value will be one of the following:
  - 0: The plug-in is not installed
  - 1: The plug-in is installed
  - -1: It is not possible to detect if the plug-in is installed
  If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Enterprise Edition.

### getPluginViewpoint

    public int getPluginViewpoint()

  Returns an integer indicating whether the user has the Viewpoint plug-in installed. The returned value will be one of the following:
  - 0: The plug-in is not installed
  - 1: The plug-in is installed
  - -1: It is not possible to detect if the plug-in is installed
  If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Professional or Enterprise Edition.

### getPluginAuthorware

    public int getPluginAuthorware()

  Returns an integer indicating whether the user has the Macromedia Authorware plug-in installed. The returned value will be one of the following:
  - 0: The plug-in is not installed
  - 1: The plug-in is installed
  - -1: It is not possible to detect if the plug-in is installed
  If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Professional or Enterprise Edition.

### getPluginMapguide

    public int getPluginMapguide()

  Returns an integer indicating whether the user has the Autodesk MapGuide plug-in installed. The returned value will be one of the following:
  - 0: The plug-in is not installed
  - 1: The plug-in is installed
  - -1: It is not possible to detect if the plug-in is installed
  If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Enterprise Edition.

### getJavaVersion

    public java.lang.String getJavaVersion()

  Returns the Java Virtual Machine (JVM) version that an applet will execute under if invoked with the <applet> tag. For example "1.4.1". This property is not available for IE under Macintosh, Opera browser versions before 7.0, or Safari versions before 1.2 on Macintosh. In these cases this property will return null, as it also will when the property is not tested.

  Special notes for this property:

  - If the user's JavaScript is disabled this property will not be available and will return null.
  - A return value of -1 means Java version detection was attempted but could not be completed because the test applet could not be seen by BrowserHawk4J. This could be for many reasons, most likely that Java is not enabled on the client -- see getJavaEnabled().
  - A return value of -2 means Java version detection was attempted but could not be completed because communicating with the test applet threw a JavaScript exception. This can happen under IE on Windows when the user has disabled the scripting of Java applets in their security settings.
  - A return value of -3 means no Java Plugin is installed.
  - Negative values are possible under both IE and Netscape on Windows if the browser doesn't have a default JVM and the user hasn't installed the Java Plug-in or the Plug-in has been installed but configured in the Control Panel not to act as the default JVM for IE and/or Netscape.
  - When first getting started with BrowserHawk - a negative value can mean that the BrowserHawk JVMDetector.class file is not located in the same directory as the script checking this property, or if you are using the JVMCodeBase property, that it is not pointing to a valid web directory or a web directory which contains this .class file. It's also possible the applet is too old a version. Make sure you have the newest applet class file installed.

  Requires BrowserHawk Enterprise Edition.

### getMSXML

    public int getMSXML()

  Returns the version number of the Microsoft XML Parser installed under IE browsers, 0 if not installed, or -1 if not detectable with the current browser. If the user's JavaScript is disabled this property will not be available. If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Enterprise Edition.

### getTextSize

    public int getTextSize()

  Returns an integer representing the text size selection the user has made from the View->Text Size menu of IE 5 or later on Windows. The possible values for this integer and the menu selection they represent are listed below:
  - -1: Not detectable with this browser
  - 5: Smallest
  - 6: Smaller
  - 7: Medium
  - 8: Larger
  - 9: Largest
  This property applies only to IE 5 and later on Windows 32 and 64-bit platforms. The return values are subject to change in a future version of BrowserHawk. If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Enterprise Edition.

### getVBScriptBuild

    public java.lang.String getVBScriptBuild()

  Returns the build number of the currently installed VBScript engine. For example: "5.5.5207". This property is only available for IE 5 and later on Windows 32 and 64-bit platforms. For other browsers it will return null. If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Enterprise Edition.

### getJavaScriptBuild

    public java.lang.String getJavaScriptBuild()

  Returns the build number of the currently installed JavaScript engine. For example: "5.5.5207". This property is only available for IE 5 and later on Windows 32 and 64-bit platforms. For other browsers it will return null. If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Enterprise Edition.

### getTimeZoneDiff

    public double getTimeZoneDiff()

  Returns the time zone difference in hours between the time zone the browser is running in and the time zone your web server is running in. Positive numbers indicate that the browser is ahead by that many hours, negative numbers indicate behind. For example, if your web server is running on Eastern Standard Time and the browser is running on a machine set for Pacific time, the value of TimeZoneDiff will be -3 to indicate 3 hours behind. Please keep in mind that when testing with a browser that resides on the same machine as the web server (as is common during development), the difference will be 0 regardless of which time zone is set (because the time zone changes you try will apply to both the browser and server). If the user's JavaScript is disabled this property will not be available. This value changed from an int to a double in BrowserHawk4J 7.0 to account for timezones which are not at even hour boundaries.

  Requires BrowserHawk Professional or Enterprise Edition.

### getBrowserBuild

    public java.lang.String getBrowserBuild()

  Returns a string containing the build number of the browser. For example: "5,50,4522,1800". This property is only available for IE 5 and later on Windows 32 and 64-bit platforms. On other browsers it will return null. If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Enterprise Edition.

### getFontSmoothing

    public boolean getFontSmoothing()

  Returns true if the user has checked the Smooth Edges of Screen Fonts option under Control Panel Display options. This option is often set by users to make screen fonts more readable. You may want to use this property in conjunction with the ColorDepth and screen size properties. This property is only available for IE 5 and later on Windows 32 and 64-bit platforms.

  Tip: Font smoothing is not enabled in the operating system by default. Therefore you may want to make some assumptions about users that have specifically enabled the Smooth Edges of Screen Fonts option. For example, they likely have a nice monitor and graphics card, and they are likely more advanced/experienced computer users (novices seldom even know about this option, but of course there's always the chance that someone set the computer up for them...). Note that on our cyScape web site only 24% of our visitor's had Font Smoothing enabled. How do we know this? We use BrowserHawk Reports.

  Requires BrowserHawk Professional or Enterprise Edition.

### getLangSystem

    public java.lang.String getLangSystem()

  Returns a string indicating the language code corresponding to the language edition of the installed operating system. For example: "en-us" or "en". Requires IE 4+, any platform. If the user's JavaScript is disabled this property will not be available. Returns null if no language code is available.

  Requires BrowserHawk Professional or Enterprise Edition.

### getLangUser

    public java.lang.String getLangUser()

  Returns a string indicating the language code corresponding to the regional settings for the user, if using IE. Otherwise returns the language code corresponding to the language build of the browser. For example: "en-us" or "en". Unlike getLangSystem(), this property is available with IE, Netscape, and Opera on with all versions on all platforms. If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Professional or Enterprise Edition.

### getMSJVMBuild

    public java.lang.String getMSJVMBuild()

  Returns the DLL build number of the Microsoft JVM, if installed. For example "5,0,17,102". This property is only available for IE 5 and later under Windows. In all other cases this property will return null. If the user's JavaScript is disabled this property will not be available. This property returns the build number of the DLL which is responsible for the JVM. Do not confuse this property with the JavaVersion.

  Requires BrowserHawk Enterprise Edition.

### getBrowserDateTime

    public java.lang.String getBrowserDateTime()

  Returns a formatted string containing the current date/time as set on client's machine (where the browser is running from). Note: This string is formatted in the user's locale. For example: "Tuesday, April 03, 2001 17:09:46" or "mardi 3 avril 2001 17:09:46.". If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Professional or Enterprise Edition.

### getPluginJavaVer

    public java.lang.String getPluginJavaVer()

  Returns a string with the build number of the Java plug-in, if installed, or null if the plug-in is not installed or the version can't be determined. An example answer is "1.3.0_01". If the plug-in is installed but the version can't be determined it will report "Installed". If some information is available, you'll get an answer like "1.4+" meaning 1.4 or later or an answer like "1.3-" meaning 1.3 or earlier.

  Tip: Use this property in conjunction with JavaVersion to determine whether to load your applet using an applet tag or an embed/object tag, depending on which JVM on the user's machine you prefer to have your applet run on! Not all browsers are capable of having their plug-ins detected. If this is the case, or if the plug-in is not installed, the return value will be a null or "0" depending on client platform. If the user's JavaScript is disabled this property will not be available. This property is not available for IE 5.x or earlier for Windows due to instability issues and conflicts encountered between the Java plug-in and IE during testing.

  Related to the above item, testing for Plugin_JavaVer on IE 6.x and later browsers in some circumstances can cause the browser to shutdown unexpectantly. In the majority of cases you will likely find that this test executes properly, however you should use this test only if absolutely necessary for your application.

  Requires BrowserHawk Enterprise Edition.

### getJavaVendor

    public java.lang.String getJavaVendor()

  Returns the vendor of the Java Virtual Machine (JVM) version that an applet will execute under, or null if it cannot be determined or if no JVM is installed. An example answer is "Microsoft Corp.".

  This property is not available for IE under Macintosh, Opera versions before 7.0, or Safari versions before 1.2 on Macintosh. In these cases this property will return null.

  Special notes for this property:

  - If the user's JavaScript is disabled this property will not be available and will return null.
  - A return value of -1 means Java version detection was attempted but could not be completed because the test applet could not be seen by BrowserHawk4J. This could be for many reasons, most likely that Java is not enabled on the client -- see getJavaEnabled().
  - A return value of -2 means Java version detection was attempted but could not be completed because communicating with the test applet threw a JavaScript exception. This can happen under IE on Windows when the user has disabled the scripting of Java applets in their security settings.
  - A return value of -3 means no Java Plugin is installed.
  - Negative values are possible under both IE and Netscape on Windows if the browser doesn't have a default JVM and the user hasn't installed the Java Plug-in or the Plug-in has been installed but configured in the Control Panel not to act as the default JVM for IE and/or Netscape.
  - When first getting started with BrowserHawk - a negative value can mean that the BrowserHawk JVMDetector.class file is not located in the same directory as the script checking this property, or if you are using the JVMCodeBase property, that it is not pointing to a valid web directory or a web directory which contains this .class file. It's also possible the applet is too old a version. Make sure you have the newest applet class file installed.

  Requires BrowserHawk Enterprise Edition.

### getPluginQuickTimeVerEx

    public java.lang.String getPluginQuickTimeVerEx()

  Returns a string with the version number of the Apple QuickTime Player plug-in, if installed. For example, "5.0.1". Special notes for this property:
  - It may take up to a few seconds to detect this setting, depending of the end user's system.
  - Not all browsers are capable of having their plug-ins detected. If this is the case the return value will be a null string.
  - If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Professional or Enterprise Edition.

### getPluginRealPlayerBuild

    public java.lang.String getPluginRealPlayerBuild()

  Returns a string with the build number of the RealPlayer plug-in. For example, "6.0.8.1024". Special notes for this property:
  - Not all browsers are capable of having their plug-ins detected. If this is the case the return value will be a null string.
  - Build numbers do not match the RealPlayer version numbers (use the Plugin_RealPlayer property for that). For example the first RealPlayer 8 release build number is "6.0.7.788".
  - The build number returned by this property is for the embedded RealPlayer plug-in and may be different than the build number of the stand alone RealPlayer (which is not detectable).
  - It may take up to a few seconds to detect this setting, depending of the end user's system.
  - Note that build #s are only provided for version 7 of RealPlayer and later under IE and Netscape, with the exception of Netscape 6. Note: This property is not available under Netscape 6+ due to a plug-in issue with this browser. It is also not available under Opera.
  - If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Professional or Enterprise Edition.

### getPluginNetMeetingBuild

    public java.lang.String getPluginNetMeetingBuild()

  Returns the build number of the Microsoft NetMeeting control, if installed. For example "4,4,0,4035". Special notes for this property:
  - This property is only available for IE 5 and later on Windows 32 and 64-bit platforms. For other browsers this property returns the null string.
  - If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Enterprise Edition.

### getNetMeetingBuild

    public java.lang.String getNetMeetingBuild()

  Returns the build number of the Microsoft NetMeeting control, if installed. For example "4,4,0,4035". Special notes for this property:
  - This property is only available for IE 5 and later on Windows 32 and 64-bit platforms. For other browsers this property returns the null string.
  - If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Enterprise Edition.

### getPluginAcrobatVerEx

    public java.lang.String getPluginAcrobatVerEx()

  Returns a string with the version number of the Adobe Acrobat plug-in, if installed. Note that only the major version number is available with IE on Windows 32 and 64-bit platforms. For example, 4.05 is represented as "4". Non IE/Windows browsers will contain the full version number (i.e. "4.05"). Special notes for this property:
  - Not all browsers are capable of having their plug-ins detected. If this is the case the return value will be a null string.
  - Under IE on Windows 32 and 64-bit platforms this property represents the major version number of the installed Acrobat plug-in, and not the full version number. For example, the user may have version 4.05 installed but this property will still contain just a value of "4". It is not possible to get the full version number with IE on Windows 32 and 64-bit platforms.
  - When checking for this plug-in, some users of Internet Explorer with Acrobat 4 will see the Acrobat splash screen displayed briefly. This is an unfortunate side effect that cannot be worked around.
  - If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Professional or Enterprise Edition.

### getBrowserDateTimeMs

    public long getBrowserDateTimeMs()

  Returns the number of milliseconds on the user's browser that has elapsed since January 1, 1970. If the user's JavaScript is disabled this property will not be available.

  Requires BrowserHawk Professional or Enterprise Edition.

### getReferrer

    public java.lang.String getReferrer()

  Returns the URL of the referring page, if any. Special notes for this property:
  - When calling the getExtendedBrowserInfo() method you will lose the referrer information normally available via the "Referer" header. Therefore if you need to access the referrer information you should do so through this property instead of the request object.
  - Unlike most other properties used by GetExtPropertiesEx, the referrer property is set regardless of whether the user's JavaScript is disabled.
  - Note this property is only set when there is a referrer and you set the REFERRER flag in the ExtendedOptions to add the Referrer as a property to check.
  - This field automatically filters out and removes any BrowserHawk reserved token names and values that may otherwise appear in referrer. For example, bhcp=1 or bhqs=1.
  - Returns a null string if no "Referer" was present.

    Requires BrowserHawk Professional or Enterprise Edition.

### getSessionCookies

    public boolean getSessionCookies()

  Returns whether the browser currently has enabled session cookies.

  Requires BrowserHawk Professional or Enterprise Edition.

### getPersistentCookies

    public boolean getPersistentCookies()

  Returns whether the browser currently has enabled persistent cookies.

  Requires BrowserHawk Professional or Enterprise Edition.

### getConnectionSpeed

    public int getConnectionSpeed()

  Returns the visitor's connection speed throughput in bits per second (note it's bits and not bytes). Special notes for this property:
  - Connection speed measures the approximate throughput, in bits per second, that the user is connecting to your site at. For example, the test may set the ConnectionSpeed property to 24024 for a user with a 28.8 modem.
  - Among other things, you can use this property to estimate the amount of time it will take the user to download a file. The formula is (file_size_in_bytes*1024) / ConnectionSpeed = # seconds to download the file. However before performing this division you should check the ConnectionSpeed property for a value of 0 (which would otherwise result in a division by zero error) or -1 (which indicates that the test could not be run due to a timeout or disabled JavaScript, etc).
  - Connection speed detection is designed to detect speeds of approximately T3 and slower. If you test the connection speed using a browser that resides on the same local network as the web server you will likely receive a reading of 0. Likewise if the browser you are testing from resides on the same machine as your web server you will receive a reading of 0. Note that these two conditions mentioned are typical when you are doing development and testing your pages. A reading of 0 typically indicates that the connection is too fast to accurately detect. When testing the parts of your web site that make use of the connection speed we recommend doing so over a connection that is not local (such as a T1, T3, ISDN, DSL, cable modem, dial-up, etc).
  - The ConnectionSpeed represents the bits per second that the user's connection is providing in terms of throughput. If the user has a 56K modem but is experiencing heavy Internet traffic, either on your site or with their ISP, their actual throughput may be significantly less. Measuring the actual throughput allows you to base what content you wish to send to them based on the speed they are actually getting from their connection, not their ideal maximum.
  - The accuracy of the connection speed test is weighted more towards the slower speeds than the higher speeds. Expressed another way, the test is designed to better discern the speed differences between a 28.8 modem and a 56K modem / ISDN / DSL, then it is detecting the difference between a T1 and a T3. This is by design. The idea is that as a developer you will be more likely concerned knowing how slow a user's connection is than how fast it is. For example, you may want to handle users at 28.8, 56K, and ISDN / DSL differently, but you're not likely to handle things differently for a T1 user than a T3 user. This approach makes it possible to keep the wait time during the test to a minimum for users with dial-up connections.
  - A wide variety of conditions can affect the user's throughput, including: heavy traffic on your site, heavy traffic on their ISPs network, and/or heavy Internet traffic in general. In addition, if the user is downloading other files in another browser window while the test is executing, the results may be skewed. This is by design. For example, if a user has a T1 but it is very busy serving other requests, the actual speed they may be receiving over the line may be just a fraction of the total capacity. Since the speed test measures the actual throughput of the connection, you can use this information to your advantage.
  - Some burstable high-speed technologies, such as cable modems, can have very sporadic connection speeds. For example, in any given minute there may be times where the user is only getting 6K Bytes/sec, and a few seconds later they burst to 600K Bytes/sec. With these technologies it is possible that the speed test will measure their speed at an inopportune time and yield a lower reading then actual.
  - In general the test provides a measure of +/- 10% of the actual connection throughput. As mentioned above certain intermittent network conditions can cause the test to yield significantly lower results than actual. The test however should not over estimate the line speed by more than the variance of 10% as mentioned above.
  - The test provides the best results when testing IE and Netscape versions 3 and higher. Despite our best efforts, some versions of Opera will run the test once but if the user loads the page a second time caching issues may cause inaccurate results. You should test the ConnectionSpeed for results greater than 15,000,000 and discount the results. Anything over this value likely indicates the browser did not run the test and just pulled the data from its cache.
  - Connection speed detection can take from approximately 1 (high speed network) to 9 seconds (28.8kbps modem user), depending on the user's connection. During this time you can display a message on the screen or a custom page asking the user to wait while the test is performed. See the ExtendedOptions class for details.
  - In general the ConnectionSpeed property should be used as a guide, not as gospel. Results should be fairly consistent when used with the popular browsers, but variances in connection speed can cause variances in the results.
  - If the user's JavaScript is disabled this property will not be available and a return value of -1 is used.

  Requires BrowserHawk Professional or Enterprise Edition.

### getConnectionLatency

    public int getConnectionLatency()

  Returns the visitor's connection latency, in milliseconds. Special notes for this property:
  - This property is tested as part of the ConnectionSpeed property. It is only available if ExtendedOptions has been configured with SpeedCheckTestType of SPEED_TEST_TYPE_PROGRESSIVE.

  Requires BrowserHawk Professional or Enterprise Edition.

### getServicePack

    public java.lang.String getServicePack()

  Returns the browser's service pack level as a string, if any. Also may include information about Q patches installed. For example, "SP2; Q321232;". Returns the null string if no service pack level is available.

  Requires BrowserHawk Enterprise Edition.

### getFirewall

    public boolean getFirewall()

  Returns true if the client is behind a firewall (either hardware or software based) that is blocking most ports from outbound traffic on the visitor's machine. This property is especially handy if your web site or application requires communication through ports other than the default HTTP ports, as is common with advanced streaming technologies. The user must have images enabled for this check to work properly, otherwise the return value will be true regardless of the real setting for this property. You can also check the ImagesEnabled property if you wish to account for that situation.

  Requires BrowserHawk Enterprise Edition.

### getOpenPorts

    public java.lang.String getOpenPorts()

  Returns the ports that are open out of the list requested to be tested, where open means the browser can connect to servers (at least the test server) using that port. Returns null if no tested ports are open or no ports were tested.

  Requires BrowserHawk Enterprise Edition.

### getImagesEnabled

    public boolean getImagesEnabled()

  Returns whether the browser has images support enabled, meaning images will be downloaded and displayed.

  Requires BrowserHawk Professional or Enterprise Edition.

### getSSLEnabled

    public boolean getSSLEnabled()

  Returns whether the browser has SSL support enabled per the browser's configuration. This property does not mean SSL is currently in use.

  Requires BrowserHawk Enterprise Edition.

### getSSLKeySize

    public int getSSLKeySize()

  Returns the key size for the SSL session as determined by running an SSL request against a test server for measurement. This method should be used when BrowserInfo.getSSLKeySize() does not return a useful answer. The BrowserInfo method examines the request to determine the key size, but not all servers expose SSL information, so this method allows dynamic execution against a test server known to expose SSL information.

  Requires BrowserHawk Enterprise Edition.

### getPluginCustom

    public int getPluginCustom()

  Returns an integer indicating whether the visitor's browser has the plug-in specified by the ExtPropCustomPluginID property installed.
  - 0: The plug-in is not installed
  - 1: The plug-in is installed
  - -1: It is not possible to detect if the plug-in is installed

  Requires BrowserHawk Enterprise Edition.

### getDownloadTimeSec

    public int getDownloadTimeSec(long filesize)

  Returns the time to download a file of the given size, in seconds, based on the calculated connection speed of the client. The ConnectionSpeed property must be tested in order to use this method. If the ConnectionSpeed property has not been calculated, the method throws a BrowserHawkException.

  Requires BrowserHawk Enterprise Edition.

### getDownloadTimeSec

    public int getDownloadTimeSec(java.lang.String filename)

  Returns the time to download the given filen, in seconds, based on the size of the file and the calculated connection speed of the client. If the connection speed property has not been calculated or if the file doesn't exist, the method throws a BrowserHawkException. For safety, make sure to use an absolute path with the filename.

  Requires BrowserHawk Enterprise Edition.

### getDownloadTimeDesc

    public java.lang.String getDownloadTimeDesc(long filesize)

  Returns the time to download a file of the given size, using an English text description like "3 hours, 5 minutes", based on the calculated connection speed of the client. The ConnectionSpeed property must be tested in order to use this method. If the connection speed property has not been calculated, the method throws a BrowserHawkException.

  Requires BrowserHawk Enterprise Edition.

### getDownloadTimeDesc

    public java.lang.String getDownloadTimeDesc(java.lang.String filename)

  Returns the time to download the given file, using an English text description like "3 hours, 5 minutes", based on the size of the file and the calculated connection speed of the client. The ConnectionSpeed property must be tested in order to use this method. If the connection speed property has not been calculated or if the file doesn't exist the method throws a BrowserHawkException. For safety, make sure to use an absolute path with the filename.

  Requires BrowserHawk Enterprise Edition.

### getPopupsBlocked

    public boolean getPopupsBlocked()

  Returns whether the visitor has popup windows blocked.

  Requires BrowserHawk Enterprise Edition.

### getFontsInstalled

    public java.lang.String getFontsInstalled()

  Returns a comma-separated list of font names that are installed on the browser which you requested be checked using the ExtendedOptions setFontsToCheck() method. For example if FontsToCheck was set to "arial,verdana,times", and only arial and times were installed, getFontsInstalled() would be set to "arial,times". If you specified "ALL" in the FontsToCheck property, then getFontsInstalled() will contain a list of all fonts installed. Returns the empty string if no fonts were tested.

  Requires BrowserHawk Enterprise Edition.

### getFontInstalled

    public boolean getFontInstalled(java.lang.String font)

  Returns a boolean indicating whether a particular font name is installed on the browser. The name must match one of the names specified in the ExtendedOptions setFontsToCheck() property, or if "ALL" is specified in setFontsToCheck(), the name can be any font name. This is a convenience method which searches the FontsInstalled values for your font name.

  Requires BrowserHawk Enterprise Edition.

### getHighSecurity

    public boolean getHighSecurity()

  Returns whether the visitor was found to be in "high security" mode (a mode where many things are disabled such as JavaScript and meta refresh auto-redirecting back to the server). When a visitor is in high security mode very few BrowserHawk extended features are available.

### isFromCache

    public boolean isFromCache()

  Returns whether this ExtendedBrowserInfo instance was pulled from the session cache or was calculated fresh by performing client-side JavaScript tests. See `ExtendedOptions.setCacheToken(String)` and `ExtendedOptions.setCacheForceRefresh(boolean)`.

### getFromCache

    public static ExtendedBrowserInfo getFromCache(javax.servlet.http.HttpServletRequest req,
                                                   java.lang.String token)

  Returns the ExtendedBrowserInfo held in the user's session under the given token, or null if no instance was being held or if the object held under that token was not an ExtendedBrowserInfo instance. See `ExtendedOptions.setCacheToken(String)` and `ExtendedOptions.setCacheForceRefresh(boolean)`.

### getOSName

    public java.lang.String getOSName()

  Returns the operating system name of the client OS. Examples include: "Windows", "OS X", "iOS", "Linux". The OSVersion and OSDetails properties have additional information. This depends on the proper installation of the JVMDetector applet and Java applets enabled in the client. If Java is not enabled on the client, the basic Platform edition can provide OS details.

  This property is not available for IE under Macintosh, Opera browser versions before 7.0, or Safari versions before 1.2 on Macintosh. In these cases this property will return null.

  Requires BrowserHawk Enterprise Edition.

### getOSVersion

    public java.lang.String getOSVersion()

  Returns the operating system version of the client machine. For example, "10.3.9" for Mac, "5.1" for Windows XP, or values like "2.4.26-grsec" and "2.6.9-11.ELsmp" for Linux. This depends on the proper installation of the JVMDetector applet and Java applets enabled in the client.

  This property is not available for IE under Macintosh, Opera browser versions before 7.0, or Safari versions before 1.2 on Macintosh. In these cases this property will return null.

  Requires BrowserHawk Enterprise Edition.

### getOSDetails

    public java.lang.String getOSDetails()

  Returns a human-friendly description of the operating system name. For Windows and OS X it includes the marketing version name such as "Windows Vista", "Windows 7", or "OS X Lion". For others it just includes the name and version, "iOS 4.3". This depends on the proper installation of the JVMDetector applet and Java applets enabled in the client. If Java is not enabled on the client, the basic Platform edition can provide OS details.

  This property is not available for IE under Macintosh, Opera browser versions before 7.0, or Safari versions before 1.2 on Macintosh. In these cases this property will return null.

  Requires BrowserHawk Enterprise Edition.

### getOSArch

    public java.lang.String getOSArch()

  Returns the operating system architecture of the client machine, as reported via Java applet system properties. Examples: "x86" for Windows on Intel, "i386" for Linux on Intel, "x86_64" for Linux 64-bit on Intel, "amd64" for Linux on AMD, "sparc" for Sun, "ppc" for Mac PowerPC under OS X, "PowerPC" for Mac PowerPC under OS 9. This depends on the proper installation of the JVMDetector applet and Java applets enabled in the client.

  This property is not available for IE under Macintosh, Opera browser versions before 7.0, or Safari versions before 1.2 on Macintosh. In these cases this property will return null.

  Requires BrowserHawk Enterprise Edition.

### getContainerBrowser

    public java.lang.String getContainerBrowser()

  Returns the browser, if any, that surrounds the browsing environment. For example, Netscape 8 can "wrap" the Internet Explorer rendering engine. BrowserHawk will in this case return IE-related values for getBrowser(), getVersion(), and getFullversion() because those values matter most in choosing how to interact with the client. The getContainerBrowser() method allows the fetching of the container or "wrapper" browser, such as "Netscape" in the above example. Returns null if no container browser is present.

  Requires BrowserHawk Professional Edition.

### getContainerVersion

    public double getContainerVersion()

  Returns the version of the browser, if any, that surrounds the browsing environment. For example, Netscape 8 can "wrap" the Internet Explorer rendering engine. BrowserHawk will in this case return IE-related values for getBrowser(), getVersion(), and getFullversion() because those values matter most in choosing how to interact with the client. The getContainerVersion() method allow the fetching of the container or "wrapper" browser version, such as "8.0" in the above example. Returns 0.0 if no container browser is present.

  Requires BrowserHawk Professional Edition.

### getContainerFullversion

    public java.lang.String getContainerFullversion()

  Returns the full version of the browser, if any, that surrounds the browsing environment. For example, Netscape 8 can "wrap" the Internet Explorer rendering engine. BrowserHawk will in this case return IE-related values for getBrowser(), getVersion(), and getFullversion() because those values matter most in choosing how to interact with the client. The getContainerVersion() method allow the fetching of the container or "wrapper" browser version, such as "8.0.1" in the above example. Returns null if no container browser is present.

  Requires BrowserHawk Professional Edition.

### getDisplayXDPIActual

    public int getDisplayXDPIActual()

  Retrieves the actual number of horizontal dots per inch (DPI) of the client system's screen. 96 is normal. On most systems, there is no difference between horizontal and vertical DPI. A difference between logical and actual DPI indicates the browser is scaling the display.

  Requires BrowserHawk Professional Edition.

### getDisplayYDPIActual

    public int getDisplayYDPIActual()

  Retrieves the actual number of vertical dots per inch (DPI) of the client system's screen. 96 is normal. On most systems, there is no difference between horizontal and vertical DPI. A difference between logical and actual DPI indicates the browser is scaling the display.

  Requires BrowserHawk Professional Edition.

### getDisplayXDPILogical

    public int getDisplayXDPILogical()

  Retrieves the normal number of horizontal dots per inch (DPI) of the client system's screen. 96 is normal. A difference between logical and actual DPI indicates the browser is scaling the display.

  Requires BrowserHawk Professional Edition.

### getDisplayYDPILogical

    public int getDisplayYDPILogical()

  Retrieves the normal number of vertical dots per inch (DPI) of the client system's screen. 96 is normal. A difference between logical and actual DPI indicates the browser is scaling the display.

  Requires BrowserHawk Professional Edition.

### getBroadband

    public boolean getBroadband()

  Returns whether the client is connected on a broadband connection.

  Requires BrowserHawk Professional Edition.

### getPluginFlip4Mac

    public java.lang.String getPluginFlip4Mac()

  Returns the version of the Flip4Mac plugin, or null if not installed or not tested.

  Requires BrowserHawk Professional Edition.

### getJSEval

    public java.lang.Object getJSEval(java.lang.String name)

  Returns the result of the JavaScript execution for the code block identified by 'name', as set by the ExtendedOptions setJSEval() method. Can be Double, String, Boolean, or null.

### getJSEvalNames

    public java.util.Set getJSEvalNames()

  Returns the names assigned for all JavaScript code blocks previously set when calling the ExtendedOptions setJSEval() method. This is helpful if you wish to enumerate the results available from the getJSEval() method.

### getPluginSilverlight

    public int getPluginSilverlight()

### getPluginSilverlightVerEx

    public java.lang.String getPluginSilverlightVerEx()

### getUploadConnectionSpeed

    public int getUploadConnectionSpeed()

  Returns the visitor's upload connection speed throughput in bits per second (note it's bits and not bytes). See the ConnectionSpeed property (which tests download speed) for special notes about these properties. A return value of -1 means the test timed out (see UploadSpeedCheckMaxWait). A return value of -2 means the browser isn't supported.

  Requires BrowserHawk Enterprise Edition.

### getUploadConnectionLatency

    public int getUploadConnectionLatency()

  Returns the visitor's upload connection latency, in milliseconds. See the ConnectionLatency property (which tests download speed) for special notes about these properties. A return value of -1 means the test timed out (see UploadSpeedCheckMaxWait). A return value of -2 means the browser isn't supported.

  Requires BrowserHawk Enterprise Edition.

### getOSBitSize

    public int getOSBitSize()

  Returns either 32 or 64 depending on the visitor's OS bit size. Uses Flash to perform the detection.

  Requires BrowserHawk Enterprise Edition.

### getPluginFlashBlocked

    public int getPluginFlashBlocked()

  Detects if Flash is blocked from running by default, returning 1 if blocked, 0 if not blocked, -1 if it's not possible to know for this visitor because Flash 10 or greater isn't present, and -2 if the property test wasn't requested.

### getBrowserBitSize

    public int getBrowserBitSize()

  Returns either 32 or 64 depending on the visitor's browser bit size. Uses both static analysis and Java to perform the detection.

  Requires BrowserHawk Enterprise Edition.

### get

    public java.lang.Object get(java.lang.String propertyName)

  Returns the value of the property whose name is specified as a String. The name is NOT case sensitive. The value returned may be of type String, Integer, Double, or Boolean. For example, to retrieve the ContainerVersion, you call

      Double d = (Double) info.get("ContainerVersion")

  .

### isExtendedProperty

    public static boolean isExtendedProperty(java.lang.String propertyName)

  Returns true if the specified property is an extended property. It returns false if the property doesn't exist or is a basic property.

### clone

    public java.lang.Object clone()

  Overrides:
    `clone` in class `java.lang.Object`

### toString

    public java.lang.String toString()

  Overrides:
    `toString` in class `java.lang.Object`

### toXML

    public java.lang.String toXML()

  Returns an XML representation of the tested extended properties and teir associated values for the current browser request. The root element includes metadata about the capture including the BrowserHawk version, license level installed, edition, BDD version, and timestamp in the ISO 8601 format. See also `BrowserInfo.toXML()` and `BrowserHawk.toXML(BrowserInfo, ExtendedBrowserInfo)`.

### toXML

    public java.lang.String toXML(java.util.Properties props)

  Returns an XML representation of the tested extended properties and teir associated values for the current browser request. The root element includes metadata about the capture including the BrowserHawk version, license level installed, edition, BDD version, and timestamp in the ISO 8601 format. By passing a Properties object you can add additional attributes on the root, for example a user's login ID or department. It's left to the caller to ensure each key is a valid XML attribute name. See also `BrowserInfo.toXML()` and `BrowserHawk.toXML(BrowserInfo, ExtendedBrowserInfo)`.