com.cyscape.browserhawk
Interface BrowserInfo

All Superinterfaces:
java.lang.Cloneable, java.io.Serializable

public interface BrowserInfo
extends java.io.Serializable, java.lang.Cloneable

Interface for accessing the various properties and capabilities of the visiting browser. Implements Serializable so a servlet/JSP can place an instance of this class in an HttpSession and have the server persist it to disk.

All these properties are available with BrowserHawk Standard Edition except WinInstallerMinVer which requires BrowserHawk Enterprise Edition.


Method Summary
 java.lang.String applyRules(java.lang.String ruleset)
          Applies the given set of rules and returns a String determined by the rules, or the empty string if no rule matches.
 java.lang.Object clone()
          Support BrowserInfo cloning
 java.lang.Object get(java.lang.String propertyName)
          Returns the value of the property whose name is specified as a String.
 boolean getActiveXControls()
          Returns whether the browser supports ActiveX controls
 boolean getAOL()
          Returns whether the visitor is accessing your site through an America Online branded browser (on the AOL network)
 double getAOLVersion()
          Returns the AOL version number being used.
 int getAuthenticodeUpdate()
          Returns the version of Authenticode which the browser supports.
 boolean getBackgroundSounds()
          Returns whether the browser supports playing background sounds.
 java.lang.String getBDDDate()
          Returns the date (as a String) for when the BDD data file was built, for example "5/1/2002 5:46:11 PM".
 java.lang.String getBDDVersion()
          Returns the version of the BDD data file, for example "5.03a".
 boolean getBeta()
          Returns whether the browser is a beta version.
 java.lang.String getBrowser()
          Returns the common name associated with the browser such as "Netscape" and "IE"
 boolean getCDF()
          Returns whether the browser supports Channel Definition Format for "subscribing" to web content with optional auto-updates.
 int getCharHeightAvail()
          Returns the number of characters you can fit down the screen of wireless devices without breaks.
 int getCharWidthAvail()
          Provides the amount of characters you can fit across the screen of wireless devices without breaks.
 boolean getCompressGZip()
          Returns whether the browser accepts compressed content in GZip format.
 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.
 boolean getCookies()
          Returns whether the browser supports the ability to accept cookies
 java.lang.String getCountry()
          Returns the 2-letter country code for the client.
 boolean getCrawler()
          Returns whether the browser is actually a crawler, spider, or other agent used to index a site for searchable content
 java.lang.String getDeviceName()
          Returns for clients that are devices their specific device name (like iPhone, Blackberry, iPad, etc).
 java.lang.String getDeviceType()
          Returns a description of the mobile device, or null if the client is not a mobile device.
 boolean getDHTML()
          Returns whether the browser supports DHTML script.
 boolean getEmailCrawler()
          Returns whether the visiting agent is a crawler designed to scan your site for the purpose of collecting email addresses listed on your site's pages.
 java.lang.String getFileUpload()
          Returns "Yes", "Maybe", or "No" to indicate whether the browser supports the ability to have a user upload a file to your server from their browser (whether the browser supports RFC 1867)
 boolean getFontColor()
          Returns whether the browser supports the display of different colored text.
 boolean getFontSize()
          Returns whether the browser supports the ability to display varying font sizes.
 boolean getFrames()
          Returns whether the browser supports frames.
 java.lang.String getFullversion()
          Returns the entire version of the browser, including all major and minor numbers and letters, if any.
 boolean getGecko()
          Returns whether the client uses the Gecko rendering engine (developed by Mozilla.org).
 java.lang.String getGeckoBuildDate()
          Returns the build date of the Gecko rendering engine in the client, or null if none.
 boolean getGold()
          Returns whether the browser is a Gold version of the Netscape browsers.
 boolean getHDML()
          Returns true if the client device supports HDML (WAP's predecessor).
 boolean getIFrames()
          Returns whether the browser supports the IFRAME tag.
 java.lang.String getIPAddr()
          Returns the IP address of the visitor.
 boolean getJavaApplets()
          Returns whether the browser supports Java applets.
 boolean getJavaScript()
          Returns whether the browser supports JavaScript.
 double getJavaScriptVer()
          Returns the version of JavaScript that the browser supports.
 java.lang.String getLanguage()
          Returns the most likely preference for the visitor's spoken language.
 int getMajorver()
          Returns the major version of the browser.
 double getMinorver()
          Returns the minor version of the browser.
 java.lang.String getMinorverlet()
          Returns the minor version letter of the browser, if any.
 boolean getMobileDevice()
          Returns whether this client is a mobile device (like a phone).
 boolean getMouseOver()
          Returns whether the browser supports the ability to use JavaScript mouse-over effects.
 boolean getMSN()
          Returns whether the user is on the MSN network.
 boolean getNETCLRInstalled()
          Returns whether the .NET CLR is installed on the client.
 java.lang.String getNETCLRVersion()
          Returns the version of the .NET CLR installed on the client, or null if none or information not available.
 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, if it can be determined purely on the server-side.
 java.lang.String getOSVersion()
          Returns the version number of the client OS, if it can be determined purely on the server-side.
 boolean getPDA()
          Returns true if the client is a PDA device such as a Palm Pilot
 java.lang.String getPlatform()
          Deprecated. Use OSName, OSVersion, and OSDetails instead
 boolean getPNG()
          Returns whether the browser supports the Portable Network Graphic (PNG) image file format.
 boolean getProxy()
          Returns whether the user is connecting through a proxy server.
 java.lang.String getProxyString()
          Returns the name of the proxy or proxies that acted on this request when that information is available, or the empty string if none.
 java.lang.String getResolveIP()
          Returns the hostname of the client making the web request, as a String, or null if it cannot be determined for any reason.
 boolean getSSL()
          Returns whether the browser supports the Secure Sockets Layer (SSL) protocol
 boolean getSSLActive()
          Returns whether the user is connected through an active SSL connection.
 java.lang.String getSSLCipherSuite()
          Returns the SSL cipher suite used for this SSL session; only available if the user is connected through an active SSL connection.
 int getSSLKeySize()
          Returns the SSL key size that the browser supports; only available if the user is connected through an active SSL connection.
 boolean getStyleSheets()
          Returns whether the browser supports cascading style sheets (CSS).
 boolean getTableBGColor()
          Returns whether the browser supports the ability to control the color of individual HTML table cells.
 boolean getTableBGImage()
          Returns whether the browser supports the ability to display an image in the background of individual HTML table cells.
 boolean getTables()
          Returns whether the browser supports the ability display HTML tables.
 boolean getVBScript()
          Returns whether the browser supports VBScript.
 double getVersion()
          Returns the version of the browser.
 boolean getWAP()
          Returns true for devices that support WML and WAP (Wireless Application Protocol), such as wireless phones.
 java.lang.String getWAPDeviceModel()
          Contains the model of the WAP device if known, or "Unknown" if not.
 java.lang.String getWAPGateway()
          Shows details of the UP.Link gateway if being used.
 int getWAPMaxDeckSize()
          Contains the approximate maximum number of bytes that the wireless device will support in a deck.
 java.lang.String getWAPSubscriberID()
          Automatically set to the unqiue subscriber ID of the WAP visitor when available.
 boolean getWebKit()
          Returns true if the client uses a WebKit rendering library.
 java.lang.String getWebKitVersion()
          Returns the version of the WebKit rendering library, or null if the client does not use WebKit.
 boolean getWin16()
          Returns whether the browser is running on a 16 bit Windows operating system, such as Windows 3.1.
 double getWinInstallerMinVer()
          Returns the minimum version of the Windows Installer that is installed on the client.
 boolean getXML()
          Returns whether the browser supports direct XML display.
 boolean getXMLHttpRequest()
          Returns whether this client supports the XMLHttpRequest object used for AJAX interactions.
 java.lang.String toXML()
          Returns an XML representation of all the BrowserInfo properties and their associated values.
 java.lang.String toXML(java.util.Properties props)
          Returns an XML representation of all the BrowserInfo properties and their associated values.
 

Method Detail

clone

java.lang.Object clone()
Support BrowserInfo cloning


getActiveXControls

boolean getActiveXControls()
Returns whether the browser supports ActiveX controls


getAOL

boolean getAOL()
Returns whether the visitor is accessing your site through an America Online branded browser (on the AOL network)


getAOLVersion

double getAOLVersion()
Returns the AOL version number being used. Otherwise it returns 0.


getAuthenticodeUpdate

int getAuthenticodeUpdate()
Returns the version of Authenticode which the browser supports. Authenticode is a Microsoft technology for digitally signing code.


getBackgroundSounds

boolean getBackgroundSounds()
Returns whether the browser supports playing background sounds.


getBeta

boolean getBeta()
Returns whether the browser is a beta version.


getBrowser

java.lang.String getBrowser()
Returns the common name associated with the browser such as "Netscape" and "IE"


getCDF

boolean getCDF()
Returns whether the browser supports Channel Definition Format for "subscribing" to web content with optional auto-updates.


getCharHeightAvail

int getCharHeightAvail()
Returns the number of characters you can fit down the screen of wireless devices without breaks. Note that this number is based on Western character sets which take up only half that of other character sets. If displaying data in Japanese, for example, you can display twice as many characters as reported. Currently this property is set only for DoCoMo i-mode devices and support for other devices will be added shortly.


getCharWidthAvail

int getCharWidthAvail()
Provides the amount of characters you can fit across the screen of wireless devices without breaks. Note that this number is based on Western character sets which take up only half that of other character sets. If displaying data in Japanese, for example, you can display twice as many characters as reported. Currently this property is set only for DoCoMo i-mode devices and support for other devices will be added shortly.


getCookies

boolean getCookies()
Returns whether the browser supports the ability to accept cookies


getCompressGZip

boolean getCompressGZip()
Returns whether the browser accepts compressed content in GZip format. If so your pages can be compressed on the fly to optimize download times.


getCrawler

boolean getCrawler()
Returns whether the browser is actually a crawler, spider, or other agent used to index a site for searchable content


getDHTML

boolean getDHTML()
Returns whether the browser supports DHTML script. Typically used in conjunction with getBrowser() and getMajorver().


getFileUpload

java.lang.String getFileUpload()
Returns "Yes", "Maybe", or "No" to indicate whether the browser supports the ability to have a user upload a file to your server from their browser (whether the browser supports RFC 1867)


getFontColor

boolean getFontColor()
Returns whether the browser supports the display of different colored text.


getFontSize

boolean getFontSize()
Returns whether the browser supports the ability to display varying font sizes.


getFrames

boolean getFrames()
Returns whether the browser supports frames.


getFullversion

java.lang.String getFullversion()
Returns the entire version of the browser, including all major and minor numbers and letters, if any. Example: 4.01.03a. Also see getMajorver(), getMinorver(), and getVersion().


getGold

boolean getGold()
Returns whether the browser is a Gold version of the Netscape browsers.


getHDML

boolean getHDML()
Returns true if the client device supports HDML (WAP's predecessor).


getIPAddr

java.lang.String getIPAddr()
Returns the IP address of the visitor.


getJavaApplets

boolean getJavaApplets()
Returns whether the browser supports Java applets.


getJavaScript

boolean getJavaScript()
Returns whether the browser supports JavaScript.


getJavaScriptVer

double getJavaScriptVer()
Returns the version of JavaScript that the browser supports.


getLanguage

java.lang.String getLanguage()
Returns the most likely preference for the visitor's spoken language.


getMajorver

int getMajorver()
Returns the major version of the browser. Example: For Netscape 4.05 getMajorver() returns 4. Also see getMinorver(), getVersion(), and getFullversion().


getMinorver

double getMinorver()
Returns the minor version of the browser. Example: For Netscape 4.05 getMinorver() returns 0.05. Also see getMajorver(), getVersion(), and getFullversion().


getMinorverlet

java.lang.String getMinorverlet()
Returns the minor version letter of the browser, if any. Returns the empty string if none. Example: For Netscape 4.05C getMinorverlet() returns "C". Also see getMajorver(), getMinorver(), getVersion(), and getFullversion().


getMouseOver

boolean getMouseOver()
Returns whether the browser supports the ability to use JavaScript mouse-over effects.


getMSN

boolean getMSN()
Returns whether the user is on the MSN network.


getPlatform

java.lang.String getPlatform()
Deprecated. Use OSName, OSVersion, and OSDetails instead

Returns more general information (as compared to getOSDetails()) about the user's platform. For example UNIX, Win98, MacPPC, WinNT


getPDA

boolean getPDA()
Returns true if the client is a PDA device such as a Palm Pilot


getPNG

boolean getPNG()
Returns whether the browser supports the Portable Network Graphic (PNG) image file format.


getProxy

boolean getProxy()
Returns whether the user is connecting through a proxy server. Note: Not all connections through a proxy can be detected as such.


getSSL

boolean getSSL()
Returns whether the browser supports the Secure Sockets Layer (SSL) protocol


getSSLActive

boolean getSSLActive()
Returns whether the user is connected through an active SSL connection. Note: Detection of this capability is not available on all web servers.


getSSLCipherSuite

java.lang.String getSSLCipherSuite()
Returns the SSL cipher suite used for this SSL session; only available if the user is connected through an active SSL connection. For example, SSL_RSA_WITH_RC4_128_MD5. Note: Detection of this capability is not available on all web servers. Returns "Unknown" if not determinable.


getSSLKeySize

int getSSLKeySize()
Returns the SSL key size that the browser supports; only available if the user is connected through an active SSL connection. For example, 40 or 128. Note: Detection of this capability is not available on all web servers. It's required for servers that support Servlet API 2.3 and up, but not all are conformant. Returns -1 if the cipher suite is unrecognized. Returns 0 if no SSL information can be found. The ExtendedBrowserInfo.getSSLKeySize() property provides another mechanism to test this value when the servlet engine doesn't support SSL reporting.


getStyleSheets

boolean getStyleSheets()
Returns whether the browser supports cascading style sheets (CSS).


getTableBGColor

boolean getTableBGColor()
Returns whether the browser supports the ability to control the color of individual HTML table cells.


getTableBGImage

boolean getTableBGImage()
Returns whether the browser supports the ability to display an image in the background of individual HTML table cells.


getTables

boolean getTables()
Returns whether the browser supports the ability display HTML tables.


getVBScript

boolean getVBScript()
Returns whether the browser supports VBScript.


getVersion

double getVersion()
Returns the version of the browser. Example: For Netscape 4.05 getVersion() returns 4.05. Also see getMajorver(), getMinorver(), and getFullversion().


getWAP

boolean getWAP()
Returns true for devices that support WML and WAP (Wireless Application Protocol), such as wireless phones. For example most modern wireless Internet phones use WML instead of HTML.


getWAPDeviceModel

java.lang.String getWAPDeviceModel()
Contains the model of the WAP device if known, or "Unknown" if not. For example, the Ericsson R380 would be set to "R380".


getWAPGateway

java.lang.String getWAPGateway()
Shows details of the UP.Link gateway if being used. For example "up1.upl.sprintpcs.com". Returns the empty string if none.


getWAPMaxDeckSize

int getWAPMaxDeckSize()
Contains the approximate maximum number of bytes that the wireless device will support in a deck.


getWAPSubscriberID

java.lang.String getWAPSubscriberID()
Automatically set to the unqiue subscriber ID of the WAP visitor when available. Currently requires visitor to be using UP.Link gateway.


getWin16

boolean getWin16()
Returns whether the browser is running on a 16 bit Windows operating system, such as Windows 3.1.


getXML

boolean getXML()
Returns whether the browser supports direct XML display.


getEmailCrawler

boolean getEmailCrawler()
Returns whether the visiting agent is a crawler designed to scan your site for the purpose of collecting email addresses listed on your site's pages.


getIFrames

boolean getIFrames()
Returns whether the browser supports the IFRAME tag.


applyRules

java.lang.String applyRules(java.lang.String ruleset)
Applies the given set of rules and returns a String determined by the rules, or the empty string if no rule matches. This feature is only supported in the Enterprise version of the software. Other versions always return null.


getResolveIP

java.lang.String getResolveIP()
Returns the hostname of the client making the web request, as a String, or null if it cannot be determined for any reason. For example, "daedalus.client.com". Attempts are made to use cached results whenever possible.


getBDDVersion

java.lang.String getBDDVersion()
Returns the version of the BDD data file, for example "5.03a". The value is null if version information is not available.


getBDDDate

java.lang.String getBDDDate()
Returns the date (as a String) for when the BDD data file was built, for example "5/1/2002 5:46:11 PM". The date and time are displayed as appropriate for the locale in which the BDD data file was built, which for official data files is always the US (mm/dd/yyyy). With user-built BDD data files the locale and date string may be different. The value is null if date information is not available.


getNETCLRInstalled

boolean getNETCLRInstalled()
Returns whether the .NET CLR is installed on the client.


getNETCLRVersion

java.lang.String getNETCLRVersion()
Returns the version of the .NET CLR installed on the client, or null if none or information not available. Currently requires IE 6 and up..


getGecko

boolean getGecko()
Returns whether the client uses the Gecko rendering engine (developed by Mozilla.org).


getGeckoBuildDate

java.lang.String getGeckoBuildDate()
Returns the build date of the Gecko rendering engine in the client, or null if none.


getProxyString

java.lang.String getProxyString()
Returns the name of the proxy or proxies that acted on this request when that information is available, or the empty string if none.


getWinInstallerMinVer

double getWinInstallerMinVer()
Returns the minimum version of the Windows Installer that is installed on the client. While it is not possible to determine if they have a later version, it is possible to deduce what the minimum version they must have installed is.

Requires BrowserHawk Enterprise Edition.


getCountry

java.lang.String getCountry()
Returns the 2-letter country code for the client. This is a convenience method that in order to work requires CountryHawk be installed and available on the system. If CountryHawk is not installed, this method will throw a BrowserHawkException. If CountryHawk is misconfigured, this method will throw a CountryException.


getContainerBrowser

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 allow the fetching of the container or "wrapper" browser, such as "Netscape" in the above example. Returns null if there's no container browser.

This property on BrowserInfo can detect container browsers when identifying tokens are placed in the User-Agent sent from the client, such as when Netscape 8 or the AOL Browser wrap IE 6. The property by the same name on ExtendedBrowserInfo can detect these and additionally detect browser wrappings that require client-side JavaScript execution for detection such as when the Windows Media Player wraps IE 6.


getContainerVersion

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 there's no container browser.

This property on BrowserInfo can detect container browsers when identifying tokens are placed in the User-Agent sent from the client, such as when Netscape 8 or the AOL Browser wrap IE 6. The property by the same name on ExtendedBrowserInfo can detect these and additionally detect browser wrappings that require client-side JavaScript execution for detection such as when the Windows Media Player wraps IE 6.


getContainerFullversion

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 there's no container browser.

This property on BrowserInfo can detect container browsers when identifying tokens are placed in the User-Agent sent from the client, such as when Netscape 8 or the AOL Browser wrap IE 6. The property by the same name on ExtendedBrowserInfo can detect these and additionally detect browser wrappings that require client-side JavaScript execution for detection such as when the Windows Media Player wraps IE 6.


getXMLHttpRequest

boolean getXMLHttpRequest()
Returns whether this client supports the XMLHttpRequest object used for AJAX interactions.


getMobileDevice

boolean getMobileDevice()
Returns whether this client is a mobile device (like a phone).


getDeviceName

java.lang.String getDeviceName()
Returns for clients that are devices their specific device name (like iPhone, Blackberry, iPad, etc). Returns null or "" if the client is not a mobile device.


getWebKit

boolean getWebKit()
Returns true if the client uses a WebKit rendering library.


getWebKitVersion

java.lang.String getWebKitVersion()
Returns the version of the WebKit rendering library, or null if the client does not use WebKit.


getDeviceType

java.lang.String getDeviceType()
Returns a description of the mobile device, or null if the client is not a mobile device. Value may be: Handheld (for phones style devices) or Tablet (for iPads, etc).


getOSName

java.lang.String getOSName()
Returns the operating system name of the client OS, if it can be determined purely on the server-side. Examples include: "Windows", "OS X", "iOS", "Linux". There's another version of this method on ExtendedBrowserInfo which does client-side detection. The OSVersion and OSDetails properties have additional information.


getOSVersion

java.lang.String getOSVersion()
Returns the version number of the client OS, if it can be determined purely on the server-side. This is not necessarily the same as the marketing version. For example, Windows 7 has version "6.1" while Windows Vista has version "6.0". OS X Lion has version "10.7.2". This is designed to make it easy to do "greater than" comparisons between versions. There's another version of this method on ExtendedBrowserInfo which does client-side detection. The OSDetails property includes the marketing name.


getOSDetails

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".


toXML

java.lang.String toXML()
Returns an XML representation of all the BrowserInfo properties and their associated values. 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 ExtendedBrowserInfo.toXML() and BrowserHawk.toXML(BrowserInfo, ExtendedBrowserInfo).


toXML

java.lang.String toXML(java.util.Properties props)
Returns an XML representation of all the BrowserInfo properties and their associated values. 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 ExtendedBrowserInfo.toXML() and BrowserHawk.toXML(BrowserInfo, ExtendedBrowserInfo).


get

java.lang.Object get(java.lang.String propertyName)
Returns the value of the property whose name is specified as a String. The name is 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")
.