From: <rb...@us...> - 2017-11-21 17:16:23
|
Revision: 14972 http://sourceforge.net/p/htmlunit/code/14972 Author: rbri Date: 2017-11-21 17:16:21 +0000 (Tue, 21 Nov 2017) Log Message: ----------- New configuration settings webSocketMaxTextMessageSize, webSocketMaxTextMessageBufferSize, webSocketMaxBinaryMessageSize, and webSocketMaxBinaryMessageBufferSize. Modified Paths: -------------- trunk/htmlunit/src/changes/changes.xml trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/WebClientOptions.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/WebSocket.java Modified: trunk/htmlunit/src/changes/changes.xml =================================================================== --- trunk/htmlunit/src/changes/changes.xml 2017-11-20 19:40:14 UTC (rev 14971) +++ trunk/htmlunit/src/changes/changes.xml 2017-11-21 17:16:21 UTC (rev 14972) @@ -9,6 +9,10 @@ <body> <release version="2.29" date="xx, 2017" description=""> <action type="add" dev="rbri"> + New configuration settings webSocketMaxTextMessageSize, webSocketMaxTextMessageBufferSize, + webSocketMaxBinaryMessageSize, and webSocketMaxBinaryMessageBufferSize. + </action> + <action type="add" dev="rbri"> JavaScript: URL constuctor and origin property added. </action> </release> Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/WebClientOptions.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/WebClientOptions.java 2017-11-20 19:40:14 UTC (rev 14971) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/WebClientOptions.java 2017-11-21 17:16:21 UTC (rev 14972) @@ -59,6 +59,11 @@ private int screenWidth_ = 1024; private int screenHeight_ = 768; + private int webSocketMaxTextMessageSize_ = -1; + private int webSocketMaxTextMessageBufferSize_ = -1; + private int webSocketMaxBinaryMessageSize_ = -1; + private int webSocketMaxBinaryMessageBufferSize_ = -1; + /** * If set to {@code 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 @@ -662,4 +667,68 @@ public int getScreenHeight() { return screenHeight_; } + + /** + * @return the WebSocket maxTextMessageSize + */ + public int getWebSocketMaxTextMessageSize() { + return webSocketMaxTextMessageSize_; + } + + /** + * Sets the WebSocket maxTextMessageSize. + * + * @param webSocketMaxTextMessageSize the new value + */ + public void setWebSocketMaxTextMessageSize(final int webSocketMaxTextMessageSize) { + webSocketMaxTextMessageSize_ = webSocketMaxTextMessageSize; + } + + /** + * @return the WebSocket maxTextMessageBufferSize + */ + public int getWebSocketMaxTextMessageBufferSize() { + return webSocketMaxTextMessageBufferSize_; + } + + /** + * Sets the WebSocket maxTextMessageBufferSize. + * + * @param webSocketMaxTextMessageBufferSize the new value + */ + public void setWebSocketMaxTextMessageBufferSize(final int webSocketMaxTextMessageBufferSize) { + webSocketMaxTextMessageBufferSize_ = webSocketMaxTextMessageBufferSize; + } + + /** + * @return the WebSocket maxTextMessageSize + */ + public int getWebSocketMaxBinaryMessageSize() { + return webSocketMaxBinaryMessageSize_; + } + + /** + * Sets the WebSocket maxBinaryMessageSize. + * + * @param webSocketMaxBinaryMessageSize the new value + */ + public void setWebSocketMaxBinaryMessageSize(final int webSocketMaxBinaryMessageSize) { + webSocketMaxBinaryMessageSize_ = webSocketMaxBinaryMessageSize; + } + + /** + * @return the WebSocket maxBinaryMessageBufferSize + */ + public int getWebSocketMaxBinaryMessageBufferSize() { + return webSocketMaxBinaryMessageBufferSize_; + } + + /** + * Sets the WebSocket maxBinaryMessageBufferSize. + * + * @param webSocketMaxBinaryMessageBufferSize the new value + */ + public void setWebSocketMaxBinaryMessageBufferSize(final int webSocketMaxBinaryMessageBufferSize) { + webSocketMaxBinaryMessageBufferSize_ = webSocketMaxBinaryMessageBufferSize; + } } Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/WebSocket.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/WebSocket.java 2017-11-20 19:40:14 UTC (rev 14971) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/WebSocket.java 2017-11-21 17:16:21 UTC (rev 14972) @@ -28,6 +28,7 @@ import org.eclipse.jetty.websocket.api.Session; import org.eclipse.jetty.websocket.api.WebSocketAdapter; import org.eclipse.jetty.websocket.api.WebSocketListener; +import org.eclipse.jetty.websocket.api.WebSocketPolicy; import org.eclipse.jetty.websocket.client.WebSocketClient; import com.gargoylesoftware.htmlunit.ScriptResult; @@ -137,6 +138,25 @@ client_ = new WebSocketClient(); } client_.setCookieStore(new WebSocketCookieStore(webClient)); + + final WebSocketPolicy policy = client_.getPolicy(); + int size = webClient.getOptions().getWebSocketMaxBinaryMessageSize(); + if (size > 0) { + policy.setMaxBinaryMessageSize(size); + } + size = webClient.getOptions().getWebSocketMaxBinaryMessageBufferSize(); + if (size > 0) { + policy.setMaxBinaryMessageBufferSize(size); + } + size = webClient.getOptions().getWebSocketMaxTextMessageSize(); + if (size > 0) { + policy.setMaxTextMessageSize(size); + } + size = webClient.getOptions().getWebSocketMaxTextMessageBufferSize(); + if (size > 0) { + policy.setMaxTextMessageBufferSize(size); + } + client_.start(); containingPage_.addAutoCloseable(this); url_ = new URI(url); |