Package org.htmlunit

# Class WebClientOptions

java.lang.Object
org.htmlunit.WebClientOptions

All Implemented Interfaces:
  `Serializable`

public class WebClientOptions extends Object implements Serializable
Represents options of a `WebClient`.

See Also:
  - Serialized Form

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `WebClientOptions.Geolocation`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `WebClientOptions()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `long`
  `getConnectionTimeToLive()`
  Gets the connTimeToLive value for the HttpClient connection pool.
  `WebClientOptions.Geolocation`
  `getGeolocation()`
  `int`
  `getHistoryPageCacheLimit()`
  Returns the maximum number of `pages` to cache in history.
  `int`
  `getHistorySizeLimit()`
  Returns the maximum number of `pages` kept in `WebWindow.getHistory()`.
  `String`
  `getHomePage()`
  Returns the client's current homepage.
  `InetAddress`
  `getLocalAddress()`
  Returns local address to be used for request execution.
  `int`
  `getMaxInMemory()`
  Returns the maximum bytes to have in memory, after which the content is saved to a temporary file.
  `ProxyConfig`
  `getProxyConfig()`
  Returns the proxy configuration for this client.
  `int`
  `getScreenHeight()`
  Returns the screen height.
  `int`
  `getScreenWidth()`
  Returns the screen width.
  `char[]`
  `getSSLClientCertificatePassword()`
  Gets the SSLClientCertificatePassword.
  `KeyStore`
  `getSSLClientCertificateStore()`
  Gets the SSLClientCertificateStore.
  `String[]`
  `getSSLClientCipherSuites()`
  Gets the cipher suites enabled for use on SSL connections.
  `String[]`
  `getSSLClientProtocols()`
  Gets the protocol versions enabled for use on SSL connections.
  `SSLContext`
  `getSSLContext()`
  Gets the SSLContext; if this is set this is used and some other settings are ignored (protocol, keyStore, keyStorePassword, trustStore, sslClientCertificateStore, sslClientCertificatePassword).
  `String`
  `getSSLInsecureProtocol()`
  Gets the SSL protocol, to be used only when `setUseInsecureSSL(boolean)` is set to `true`.
  `KeyStore`
  `getSSLTrustStore()`
  Gets the SSL TrustStore.
  `File`
  `getTempFileDirectory()`
  Returns the directory to be used for storing the response content in a temporary file see `getMaxInMemory()`.
  `int`
  `getTimeout()`
  Gets the timeout value for the `WebConnection`.
  `int`
  `getWebSocketMaxBinaryMessageBufferSize()`
  `int`
  `getWebSocketMaxBinaryMessageSize()`
  `int`
  `getWebSocketMaxTextMessageBufferSize()`
  `int`
  `getWebSocketMaxTextMessageSize()`
  `boolean`
  `isCssEnabled()`
  Returns `true` if CSS is enabled.
  `boolean`
  `isDoNotTrackEnabled()`
  Returns `true` if "Do Not Track" is enabled.
  `boolean`
  `isDownloadImages()`
  Returns whether to automatically download images by default, or not.
  `boolean`
  `isFetchPolyfillEnabled()`
  `boolean`
  `isFileProtocolForXMLHttpRequestsAllowed()`
  Indicates if the client will accept XMLHttpRequests to URL's using the 'file' protocol.
  `boolean`
  `isGeolocationEnabled()`
  `boolean`
  `isJavaScriptEnabled()`
  Returns `true` if JavaScript is enabled and the script engine was loaded successfully.
  `boolean`
  `isPopupBlockerEnabled()`
  Returns `true` if the popup window blocker is enabled.
  `boolean`
  `isPrintContentOnFailingStatusCode()`
  Returns `true` if the content of the resulting document will be printed to the console in the event of a failing response code.
  `boolean`
  `isRedirectEnabled()`
  Returns whether or not redirections will be followed automatically on receipt of a redirect status code from the server.
  `boolean`
  `isThrowExceptionOnFailingStatusCode()`
  Returns `true` if an exception will be thrown in the event of a failing response code.
  `boolean`
  `isThrowExceptionOnScriptError()`
  Indicates if an exception should be thrown when a script execution fails (the default) or if it should be caught and just logged to allow page execution to continue.
  `boolean`
  `isUseInsecureSSL()`
  Indicates if insecure SSL should be used.
  `boolean`
  `isWebSocketEnabled()`
  Returns `true` if WebSockets are enabled.
  `void`
  `setConnectionTimeToLive(long connectionTimeToLive)`
  Sets the connTimeToLive of the HttpClient connection pool.
  `void`
  `setCssEnabled(boolean enabled)`
  Enables/disables CSS support.
  `void`
  `setDoNotTrackEnabled(boolean enabled)`
  Enables/disables "Do Not Track" support.
  `void`
  `setDownloadImages(boolean downloadImages)`
  Sets whether to automatically download images by default, or not.
  `void`
  `setFetchPolyfillEnabled(boolean enabled)`
  Sets whether or not fetch polyfill should be used.
  `void`
  `setFileProtocolForXMLHttpRequestsAllowed(boolean fileProtocolForXMLHttpRequestsAllowed)`
  If set to `true`, the client will accept XMLHttpRequests to URL's using the 'file' protocol.
  `void`
  `setGeolocation(WebClientOptions.Geolocation geolocation)`
  Sets the `WebClientOptions.Geolocation` to be used.
  `void`
  `setGeolocationEnabled(boolean enabled)`
  Enables/disables Geolocation support.
  `void`
  `setHistoryPageCacheLimit(int historyPageCacheLimit)`
  Sets the maximum number of `pages` to cache in history.
  `void`
  `setHistorySizeLimit(int historySizeLimit)`
  Sets the History size limit.
  `void`
  `setHomePage(String homePage)`
  Sets the client's homepage.
  `void`
  `setJavaScriptEnabled(boolean enabled)`
  Enables/disables JavaScript support.
  `void`
  `setLocalAddress(InetAddress localAddress)`
  Sets the local address to be used for request execution.
  `void`
  `setMaxInMemory(int maxInMemory)`
  Sets the maximum bytes to have in memory, after which the content is saved to a temporary file.
  `void`
  `setPopupBlockerEnabled(boolean enabled)`
  Enable/disable the popup window blocker.
  `void`
  `setPrintContentOnFailingStatusCode(boolean enabled)`
  Specify whether or not the content of the resulting document will be printed to the console in the event of a failing response code.
  `void`
  `setProxyConfig(ProxyConfig proxyConfig)`
  Sets the proxy configuration for this client.
  `void`
  `setRedirectEnabled(boolean enabled)`
  Sets whether or not redirections will be followed automatically on receipt of a redirect status code from the server.
  `void`
  `setScreenHeight(int screenHeight)`
  Sets the screen height.
  `void`
  `setScreenWidth(int screenWidth)`
  Sets the screen width.
  `void`
  `setSSLClientCertificateKeyStore(InputStream keyStoreInputStream, String keyStorePassword, String keyStoreType)`
  Sets the SSL client certificate `KeyStore` to use.
  `void`
  `setSSLClientCertificateKeyStore(URL keyStoreUrl, String keyStorePassword, String keyStoreType)`
  Sets the SSL client certificate to use.
  `void`
  `setSSLClientCertificateKeyStore(KeyStore keyStore, char[] keyStorePassword)`
  Sets the SSL client certificate `KeyStore` to use.
  `void`
  `setSSLClientCipherSuites(String... sslClientCipherSuites)`
  Sets the cipher suites enabled for use on SSL connections, `null` to use default ones.
  `void`
  `setSSLClientProtocols(String... sslClientProtocols)`
  Sets the protocol versions enabled for use on SSL connections, `null` to use default ones.
  `void`
  `setSSLContext(SSLContext sslContext)`
  Sets the SSLContext; if this is set it is used and some other settings are ignored (protocol, keyStore, keyStorePassword, trustStore, sslClientCertificateStore, sslClientCertificatePassword).
  `void`
  `setSSLInsecureProtocol(String sslInsecureProtocol)`
  Sets the SSL protocol, used only when `setUseInsecureSSL(boolean)` is set to `true`.
  `void`
  `setSSLTrustStore(URL sslTrustStoreUrl, String sslTrustStorePassword, String sslTrustStoreType)`
  Sets the SSL server certificate trust store.
  `void`
  `setSSLTrustStore(KeyStore keyStore)`
  `void`
  `setTempFileDirectory(File tempFileDirectory)`
  Sets the directory to be used for storing the response content in a temporary file see `setMaxInMemory(int)`.
  `void`
  `setThrowExceptionOnFailingStatusCode(boolean enabled)`
  Specify whether or not an exception will be thrown in the event of a failing status code.
  `void`
  `setThrowExceptionOnScriptError(boolean enabled)`
  Changes the behavior of this webclient when a script error occurs.
  `void`
  `setTimeout(int timeout)`
  Sets the timeout of the `WebConnection`.
  `void`
  `setUseInsecureSSL(boolean useInsecureSSL)`
  If set to `true`, the client will accept connections to any host, regardless of whether they have valid certificates or not.
  `void`
  `setWebSocketEnabled(boolean enabled)`
  Enables/disables WebSocket support.
  `void`
  `setWebSocketMaxBinaryMessageBufferSize(int webSocketMaxBinaryMessageBufferSize)`
  Sets the WebSocket maxBinaryMessageBufferSize.
  `void`
  `setWebSocketMaxBinaryMessageSize(int webSocketMaxBinaryMessageSize)`
  Sets the WebSocket maxBinaryMessageSize.
  `void`
  `setWebSocketMaxTextMessageBufferSize(int webSocketMaxTextMessageBufferSize)`
  Sets the WebSocket maxTextMessageBufferSize.
  `void`
  `setWebSocketMaxTextMessageSize(int webSocketMaxTextMessageSize)`
  Sets the WebSocket maxTextMessageSize.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### WebClientOptions

    public WebClientOptions()

- ## Method Details

  - ### setSSLContext

    public void setSSLContext(SSLContext sslContext)
    Sets the SSLContext; if this is set it is used and some other settings are ignored (protocol, keyStore, keyStorePassword, trustStore, sslClientCertificateStore, sslClientCertificatePassword).

    This property is transient (because SSLContext is not serializable)

    Parameters:
      `sslContext` - the SSLContext, `null` to use for default value

  - ### getSSLContext

    public SSLContext getSSLContext()
    Gets the SSLContext; if this is set this is used and some other settings are ignored (protocol, keyStore, keyStorePassword, trustStore, sslClientCertificateStore, sslClientCertificatePassword).

    This property is transient (because SSLContext is not serializable)

    Returns:
      the SSLContext

  - ### setUseInsecureSSL

    public void setUseInsecureSSL(boolean useInsecureSSL)
    If set to `true`, the client will accept connections to any host, regardless of whether they have valid certificates or not. This is especially useful when you are trying to connect to a server with expired or corrupt certificates.
    Parameters:
      `useInsecureSSL` - whether or not to use insecure SSL

  - ### isUseInsecureSSL

    public boolean isUseInsecureSSL()
    Indicates if insecure SSL should be used.
    Returns:
      `true` if insecure SSL should be used. Default is `false`.

  - ### setRedirectEnabled

    public void setRedirectEnabled(boolean enabled)
    Sets whether or not redirections will be followed automatically on receipt of a redirect status code from the server.
    Parameters:
      `enabled` - true to enable automatic redirection

  - ### getTempFileDirectory

    public File getTempFileDirectory()
    Returns the directory to be used for storing the response content in a temporary file see `getMaxInMemory()`.
    Returns:
      the directory to be used for storing temp files or null to use the system default

  - ### setTempFileDirectory

    public void setTempFileDirectory(File tempFileDirectory) throws IOException
    Sets the directory to be used for storing the response content in a temporary file see `setMaxInMemory(int)`. If the given directory does not exist, this creates it.
    Parameters:
      `tempFileDirectory` - the directory to be used or null to use the system default
    Throws:
      `IOException` - in case of error

  - ### isRedirectEnabled

    public boolean isRedirectEnabled()
    Returns whether or not redirections will be followed automatically on receipt of a redirect status code from the server.
    Returns:
      true if automatic redirection is enabled

  - ### setSSLClientCertificateKeyStore

    public void setSSLClientCertificateKeyStore(KeyStore keyStore, char[] keyStorePassword)
    Sets the SSL client certificate `KeyStore` to use.

    If the web server requires Renegotiation, you have to set system property "sun.security.ssl.allowUnsafeRenegotiation" to true, as hinted in TLS Renegotiation Issue.

    In some cases the impl seems to pick old certificates from the `KeyStore`. To avoid that, wrap your `KeyStore` inside your own `KeyStore` impl and filter out outdated certificates.

    This property is transient (because KeyStore is not serializable)

    Parameters:
      `keyStore` - `KeyStore` to use
      `keyStorePassword` - the keystore password

  - ### setSSLClientCertificateKeyStore

    public void setSSLClientCertificateKeyStore(URL keyStoreUrl, String keyStorePassword, String keyStoreType)
    Sets the SSL client certificate to use. The needed parameters are used to construct a `KeyStore`.

    If the web server requires Renegotiation, you have to set system property "sun.security.ssl.allowUnsafeRenegotiation" to true, as hinted in TLS Renegotiation Issue.

    This property is transient (because KeyStore is not serializable)

    Parameters:
      `keyStoreUrl` - the URL which locates the certificate `KeyStore`
      `keyStorePassword` - the certificate `KeyStore` password
      `keyStoreType` - the type of certificate `KeyStore`, usually `jks` or `pkcs12`

  - ### setSSLClientCertificateKeyStore

    public void setSSLClientCertificateKeyStore(InputStream keyStoreInputStream, String keyStorePassword, String keyStoreType)
    Sets the SSL client certificate `KeyStore` to use. The parameters are used to construct the `KeyStore`.

    If the web server requires Renegotiation, you have to set system property "sun.security.ssl.allowUnsafeRenegotiation" to true, as hinted in TLS Renegotiation Issue.

    In some cases the impl seems to pick old certificates from the `KeyStore`. To avoid that, wrap your `KeyStore` inside your own `KeyStore` impl and filter out outdated certificates. Provide the `KeyStore` to the options instead of the input stream.

    Parameters:
      `keyStoreInputStream` - the input stream which represents the `KeyStore` holding the certificates
      `keyStorePassword` - the `KeyStore` password
      `keyStoreType` - the type of `KeyStore`, usually `jks` or `pkcs12`

  - ### getSSLClientCertificateStore

    public KeyStore getSSLClientCertificateStore()
    Gets the SSLClientCertificateStore.

    This property is transient (because KeyStore is not serializable)

    Returns:
      the KeyStore for use on SSL connections

  - ### getSSLClientCertificatePassword

    public char[] getSSLClientCertificatePassword()
    Gets the SSLClientCertificatePassword.
    Returns:
      the password

  - ### getSSLClientProtocols

    public String[] getSSLClientProtocols()
    Gets the protocol versions enabled for use on SSL connections.
    Returns:
      the protocol versions enabled for use on SSL connections
    See Also:
      - `setSSLClientProtocols(String...)`

  - ### setSSLClientProtocols

    public void setSSLClientProtocols(String... sslClientProtocols)
    Sets the protocol versions enabled for use on SSL connections, `null` to use default ones.
    Parameters:
      `sslClientProtocols` - the protocol versions
    See Also:
      - `SSLSocket.setEnabledProtocols(String[])`
      - `getSSLClientProtocols()`

  - ### getSSLClientCipherSuites

    public String[] getSSLClientCipherSuites()
    Gets the cipher suites enabled for use on SSL connections.
    Returns:
      the cipher suites enabled for use on SSL connections
    See Also:
      - `setSSLClientCipherSuites(String...)`

  - ### setSSLClientCipherSuites

    public void setSSLClientCipherSuites(String... sslClientCipherSuites)
    Sets the cipher suites enabled for use on SSL connections, `null` to use default ones.
    Parameters:
      `sslClientCipherSuites` - the cipher suites
    See Also:
      - `SSLSocket.setEnabledCipherSuites(String[])`
      - `getSSLClientCipherSuites()`

  - ### setJavaScriptEnabled

    public void setJavaScriptEnabled(boolean enabled)
    Enables/disables JavaScript support. By default, this property is enabled.
    Parameters:
      `enabled` - `true` to enable JavaScript support

  - ### isJavaScriptEnabled

    public boolean isJavaScriptEnabled()
    Returns `true` if JavaScript is enabled and the script engine was loaded successfully.
    Returns:
      `true` if JavaScript is enabled

  - ### setCssEnabled

    public void setCssEnabled(boolean enabled)
    Enables/disables CSS support. By default, this property is enabled. If disabled HtmlUnit will not download the linked css files and also not triggered the associated onload/onerror events.
    Parameters:
      `enabled` - `true` to enable CSS support

  - ### isCssEnabled

    public boolean isCssEnabled()
    Returns `true` if CSS is enabled.
    Returns:
      `true` if CSS is enabled

  - ### setPopupBlockerEnabled

    public void setPopupBlockerEnabled(boolean enabled)
    Enable/disable the popup window blocker. By default, the popup blocker is disabled, and popup windows are allowed. When set to `true`, `window.open()` has no effect and returns `null`.
    Parameters:
      `enabled` - `true` to enable the popup window blocker

  - ### isPopupBlockerEnabled

    public boolean isPopupBlockerEnabled()
    Returns `true` if the popup window blocker is enabled.
    Returns:
      `true` if the popup window blocker is enabled

  - ### setDoNotTrackEnabled

    public void setDoNotTrackEnabled(boolean enabled)
    Enables/disables "Do Not Track" support. By default, this property is disabled.
    Parameters:
      `enabled` - `true` to enable "Do Not Track" support

  - ### isDoNotTrackEnabled

    public boolean isDoNotTrackEnabled()
    Returns `true` if "Do Not Track" is enabled.
    Returns:
      `true` if "Do Not Track" is enabled

  - ### setPrintContentOnFailingStatusCode

    public void setPrintContentOnFailingStatusCode(boolean enabled)
    Specify whether or not the content of the resulting document will be printed to the console in the event of a failing response code. Successful response codes are in the range 200-299. The default is true.
    Parameters:
      `enabled` - True to enable this feature

  - ### isPrintContentOnFailingStatusCode

    public boolean isPrintContentOnFailingStatusCode()
    Returns `true` if the content of the resulting document will be printed to the console in the event of a failing response code.
    Returns:
      `true` if the content of the resulting document will be printed to the console in the event of a failing response code
    See Also:
      - `setPrintContentOnFailingStatusCode(boolean)`

  - ### setThrowExceptionOnFailingStatusCode

    public void setThrowExceptionOnFailingStatusCode(boolean enabled)
    Specify whether or not an exception will be thrown in the event of a failing status code. Successful status codes are in the range 200-299. The default is true.
    Parameters:
      `enabled` - `true` to enable this feature

  - ### isThrowExceptionOnFailingStatusCode

    public boolean isThrowExceptionOnFailingStatusCode()
    Returns `true` if an exception will be thrown in the event of a failing response code.
    Returns:
      `true` if an exception will be thrown in the event of a failing response code
    See Also:
      - `setThrowExceptionOnFailingStatusCode(boolean)`

  - ### isThrowExceptionOnScriptError

    public boolean isThrowExceptionOnScriptError()
    Indicates if an exception should be thrown when a script execution fails (the default) or if it should be caught and just logged to allow page execution to continue.
    Returns:
      `true` if an exception is thrown on script error (the default)

  - ### setThrowExceptionOnScriptError

    public void setThrowExceptionOnScriptError(boolean enabled)
    Changes the behavior of this webclient when a script error occurs.
    Parameters:
      `enabled` - indicates if exception should be thrown or not

  - ### getHomePage

    public String getHomePage()
    Returns the client's current homepage.
    Returns:
      the client's current homepage

  - ### setHomePage

    public void setHomePage(String homePage)
    Sets the client's homepage.
    Parameters:
      `homePage` - the new homepage URL

  - ### getProxyConfig

    public ProxyConfig getProxyConfig()
    Returns the proxy configuration for this client.
    Returns:
      the proxy configuration for this client

  - ### setProxyConfig

    public void setProxyConfig(ProxyConfig proxyConfig)
    Sets the proxy configuration for this client.
    Parameters:
      `proxyConfig` - the proxy configuration for this client

  - ### getTimeout

    public int getTimeout()
    Gets the timeout value for the `WebConnection`. The default timeout is 90 seconds.
    Returns:
      the timeout value in milliseconds
    See Also:
      - `setTimeout(int)`

  - ### setTimeout

    public void setTimeout(int timeout)

    Sets the timeout of the `WebConnection`. Set to zero for an infinite wait.

    Note: The timeout is used twice. The first is for making the socket connection, the second is for data retrieval. If the time is critical you must allow for twice the time specified here.

    Parameters:
      `timeout` - the value of the timeout in milliseconds

  - ### getConnectionTimeToLive

    public long getConnectionTimeToLive()
    Gets the connTimeToLive value for the HttpClient connection pool.
    Returns:
      the timeout value in milliseconds

  - ### setConnectionTimeToLive

    public void setConnectionTimeToLive(long connectionTimeToLive)
    Sets the connTimeToLive of the HttpClient connection pool. Use this if you are working with web pages behind a DNS based load balancer. Set to -1 (default) for disabling this timeout.
    Parameters:
      `connectionTimeToLive` - the value of the timeout in milliseconds

  - ### setSSLInsecureProtocol

    public void setSSLInsecureProtocol(String sslInsecureProtocol)
    Sets the SSL protocol, used only when `setUseInsecureSSL(boolean)` is set to `true`.
    Parameters:
      `sslInsecureProtocol` - the SSL protocol for insecure SSL connections, `null` to use for default value

  - ### getSSLInsecureProtocol

    public String getSSLInsecureProtocol()
    Gets the SSL protocol, to be used only when `setUseInsecureSSL(boolean)` is set to `true`.
    Returns:
      the SSL protocol for insecure SSL connections

  - ### setSSLTrustStore

    public void setSSLTrustStore(URL sslTrustStoreUrl, String sslTrustStorePassword, String sslTrustStoreType)
    Sets the SSL server certificate trust store. All server certificates will be validated against this trust store.

    This property is transient (because KeyStore is not serializable)

    The needed parameters are used to construct a `KeyStore`.

    Parameters:
      `sslTrustStoreUrl` - the URL which locates the trust store
      `sslTrustStorePassword` - the trust store password
      `sslTrustStoreType` - the type of trust store, usually `jks` or `pkcs12`

  - ### setSSLTrustStore

    public void setSSLTrustStore(KeyStore keyStore)

  - ### getSSLTrustStore

    public KeyStore getSSLTrustStore()
    Gets the SSL TrustStore.

    This property is transient (because KeyStore is not serializable)

    Returns:
      the SSL TrustStore for insecure SSL connections

  - ### getMaxInMemory

    public int getMaxInMemory()
    Returns the maximum bytes to have in memory, after which the content is saved to a temporary file. Default is 500 * 1024.
    Returns:
      the maximum bytes in memory

  - ### setMaxInMemory

    public void setMaxInMemory(int maxInMemory)
    Sets the maximum bytes to have in memory, after which the content is saved to a temporary file. Set this to zero or -1 to deactivate the saving at all.
    Parameters:
      `maxInMemory` - maximum bytes in memory

  - ### getHistorySizeLimit

    public int getHistorySizeLimit()
    Returns the maximum number of `pages` kept in `WebWindow.getHistory()`.
    Returns:
      the maximum number of pages in history

  - ### setHistorySizeLimit

    public void setHistorySizeLimit(int historySizeLimit)
    Sets the History size limit. HtmlUnit uses SoftReferences<Page> for storing the pages that are part of the history. If you like to fine tune this you can use `setHistoryPageCacheLimit(int)` to limit the number of page references stored by the history.
    Parameters:
      `historySizeLimit` - maximum number of pages in history

  - ### getHistoryPageCacheLimit

    public int getHistoryPageCacheLimit()
    Returns the maximum number of `pages` to cache in history.
    Returns:
      the maximum number of pages to cache in history

  - ### setHistoryPageCacheLimit

    public void setHistoryPageCacheLimit(int historyPageCacheLimit)
    Sets the maximum number of `pages` to cache in history. If this value is smaller than the {`getHistorySizeLimit()` than HtmlUnit will only use soft references for the first historyPageCacheLimit entries in the history. For older entries only the url is saved; the page will be (re)retrieved on demand.
    Parameters:
      `historyPageCacheLimit` - maximum number of pages to cache in history default is Integer.MAX_VALUE; negative values are having the same effect as setting this to zero.

  - ### getLocalAddress

    public InetAddress getLocalAddress()
    Returns local address to be used for request execution.

    On machines with multiple network interfaces, this parameter can be used to select the network interface from which the connection originates.

    Default: `null`

    Returns:
      the local address

  - ### setLocalAddress

    public void setLocalAddress(InetAddress localAddress)
    Sets the local address to be used for request execution.

    On machines with multiple network interfaces, this parameter can be used to select the network interface from which the connection originates.

    Parameters:
      `localAddress` - the local address

  - ### setDownloadImages

    public void setDownloadImages(boolean downloadImages)
    Sets whether to automatically download images by default, or not.
    Parameters:
      `downloadImages` - whether to automatically download images by default, or not

  - ### isDownloadImages

    public boolean isDownloadImages()
    Returns whether to automatically download images by default, or not.
    Returns:
      whether to automatically download images by default, or not.

  - ### setScreenWidth

    public void setScreenWidth(int screenWidth)
    Sets the screen width.
    Parameters:
      `screenWidth` - the screen width

  - ### getScreenWidth

    public int getScreenWidth()
    Returns the screen width.
    Returns:
      the screen width

  - ### setScreenHeight

    public void setScreenHeight(int screenHeight)
    Sets the screen height.
    Parameters:
      `screenHeight` - the screen height

  - ### getScreenHeight

    public int getScreenHeight()
    Returns the screen height.
    Returns:
      the screen height

  - ### setWebSocketEnabled

    public void setWebSocketEnabled(boolean enabled)
    Enables/disables WebSocket support. By default, this property is enabled.
    Parameters:
      `enabled` - `true` to enable WebSocket support

  - ### isWebSocketEnabled

    public boolean isWebSocketEnabled()
    Returns `true` if WebSockets are enabled.
    Returns:
      `true` if WebSockets are enabled

  - ### getWebSocketMaxTextMessageSize

    public int getWebSocketMaxTextMessageSize()
    Returns:
      the WebSocket maxTextMessageSize

  - ### setWebSocketMaxTextMessageSize

    public void setWebSocketMaxTextMessageSize(int webSocketMaxTextMessageSize)
    Sets the WebSocket maxTextMessageSize.
    Parameters:
      `webSocketMaxTextMessageSize` - the new value

  - ### getWebSocketMaxTextMessageBufferSize

    public int getWebSocketMaxTextMessageBufferSize()
    Returns:
      the WebSocket maxTextMessageBufferSize

  - ### setWebSocketMaxTextMessageBufferSize

    public void setWebSocketMaxTextMessageBufferSize(int webSocketMaxTextMessageBufferSize)
    Sets the WebSocket maxTextMessageBufferSize.
    Parameters:
      `webSocketMaxTextMessageBufferSize` - the new value

  - ### getWebSocketMaxBinaryMessageSize

    public int getWebSocketMaxBinaryMessageSize()
    Returns:
      the WebSocket maxTextMessageSize

  - ### setWebSocketMaxBinaryMessageSize

    public void setWebSocketMaxBinaryMessageSize(int webSocketMaxBinaryMessageSize)
    Sets the WebSocket maxBinaryMessageSize.
    Parameters:
      `webSocketMaxBinaryMessageSize` - the new value

  - ### getWebSocketMaxBinaryMessageBufferSize

    public int getWebSocketMaxBinaryMessageBufferSize()
    Returns:
      the WebSocket maxBinaryMessageBufferSize

  - ### setWebSocketMaxBinaryMessageBufferSize

    public void setWebSocketMaxBinaryMessageBufferSize(int webSocketMaxBinaryMessageBufferSize)
    Sets the WebSocket maxBinaryMessageBufferSize.
    Parameters:
      `webSocketMaxBinaryMessageBufferSize` - the new value

  - ### setFetchPolyfillEnabled

    public void setFetchPolyfillEnabled(boolean enabled)
    Sets whether or not fetch polyfill should be used.
    Parameters:
      `enabled` - true to enable fetch polyfill

  - ### isFetchPolyfillEnabled

    public boolean isFetchPolyfillEnabled()
    Returns:
      true if the fetch api polyfill is enabled

  - ### setGeolocationEnabled

    public void setGeolocationEnabled(boolean enabled)
    Enables/disables Geolocation support. By default, this property is disabled.
    Parameters:
      `enabled` - `true` to enable Geolocation support

  - ### isGeolocationEnabled

    public boolean isGeolocationEnabled()
    Returns:
      `true` if Geolocation is enabled

  - ### getGeolocation

    public WebClientOptions.Geolocation getGeolocation()
    Returns:
      the `WebClientOptions.Geolocation`

  - ### setGeolocation

    public void setGeolocation(WebClientOptions.Geolocation geolocation)
    Sets the `WebClientOptions.Geolocation` to be used.
    Parameters:
      `geolocation` - the new location or null

  - ### setFileProtocolForXMLHttpRequestsAllowed

    public void setFileProtocolForXMLHttpRequestsAllowed(boolean fileProtocolForXMLHttpRequestsAllowed)
    If set to `true`, the client will accept XMLHttpRequests to URL's using the 'file' protocol. Allowing this introduces security problems and is therefore not allowed by current browsers. But some browsers have special settings to open this door; therefore we have this option.
    Parameters:
      `fileProtocolForXMLHttpRequestsAllowed` - whether or not allow (local) file access

  - ### isFileProtocolForXMLHttpRequestsAllowed

    public boolean isFileProtocolForXMLHttpRequestsAllowed()
    Indicates if the client will accept XMLHttpRequests to URL's using the 'file' protocol.
    Returns:
      `true` if access to local files is allowed.