From: <rb...@us...> - 2017-10-07 14:42:03
|
Revision: 14862 http://sourceforge.net/p/htmlunit/code/14862 Author: rbri Date: 2017-10-07 14:42:01 +0000 (Sat, 07 Oct 2017) Log Message: ----------- throw a type error if the url property is requested from the WebSocket prototype Modified Paths: -------------- trunk/htmlunit/src/changes/changes.xml trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/WebSocket.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/WebSocketTest.java Modified: trunk/htmlunit/src/changes/changes.xml =================================================================== --- trunk/htmlunit/src/changes/changes.xml 2017-10-07 14:09:12 UTC (rev 14861) +++ trunk/htmlunit/src/changes/changes.xml 2017-10-07 14:42:01 UTC (rev 14862) @@ -8,6 +8,9 @@ <body> <release version="2.28" date="???" description="Bugfixes, Chrome 61"> + <action type="fix" dev="rbri"> + JavaScript: throw a type error if the url property is requested from the WebSocket prototype. + </action> <action type="add" dev="rbri"> JavaScript: simple impl for CanvasRenderingContext.fillText added. </action> 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-10-07 14:09:12 UTC (rev 14861) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/WebSocket.java 2017-10-07 14:42:01 UTC (rev 14862) @@ -49,6 +49,7 @@ import net.sourceforge.htmlunit.corejs.javascript.Context; import net.sourceforge.htmlunit.corejs.javascript.ContextAction; import net.sourceforge.htmlunit.corejs.javascript.Function; +import net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime; import net.sourceforge.htmlunit.corejs.javascript.Scriptable; import net.sourceforge.htmlunit.corejs.javascript.Undefined; @@ -278,6 +279,9 @@ */ @JsxGetter public String getUrl() { + if (url_ == null) { + throw ScriptRuntime.typeError("invalid call"); + } return url_.toString(); } Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/WebSocketTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/WebSocketTest.java 2017-10-07 14:09:12 UTC (rev 14861) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/WebSocketTest.java 2017-10-07 14:42:01 UTC (rev 14862) @@ -519,4 +519,21 @@ stopWebServers(); } + /** + * @throws Exception if the test fails + */ + @Test + @Alerts("true") + public void prototypeUrl() throws Exception { + final String html = "<html><head><script>\n" + + " function test() {\n" + + " try {\n" + + " var u = WebSocket.prototype.url;\n" + + " alert(u);\n" + + " } catch(e) { alert(e instanceof TypeError) }\n" + + " }\n" + + "</script></head><body onload='test()'>\n" + + "</body></html>"; + loadPageWithAlerts2(html); + } } |