Repository: wicket Updated Branches: refs/heads/master 7d90522c4 -> 87c38f29e
WICKET-5936 split CDATA end with CDATA end+start Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/87c38f29 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/87c38f29 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/87c38f29 Branch: refs/heads/master Commit: 87c38f29e09056bb556eac8a70481171e55a3083 Parents: 7d90522 Author: Sven Meier <[email protected]> Authored: Fri Jun 26 00:38:52 2015 +0200 Committer: Sven Meier <[email protected]> Committed: Fri Jun 26 00:38:52 2015 +0200 ---------------------------------------------------------------------- .../wicket/ajax/AbstractAjaxResponse.java | 11 ++---- .../org/apache/wicket/ajax/XmlAjaxResponse.java | 28 ++------------- .../wicket/ajax/res/js/wicket-ajax-jquery.js | 36 -------------------- .../apache/wicket/TestDetachPageAjaxResult.html | 6 ++-- .../ajax/DomReadyOrderPage_ajax_expected.html | 6 ++-- .../wicket/ajax/MockComponent1-expected.html | 2 +- .../SimpleTestPageExpectedResult-1.html | 6 ++-- wicket-core/src/test/js/head.js | 22 +----------- 8 files changed, 16 insertions(+), 101 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/87c38f29/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxResponse.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxResponse.java b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxResponse.java index c0f3c34..f949171 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxResponse.java +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxResponse.java @@ -791,15 +791,8 @@ public abstract class AbstractAjaxResponse return null; } - return Strings.replaceAll(str, "]", "]^").toString(); - } - - /** - * @return name of encoding used to possibly encode the contents of the CDATA blocks - */ - protected String getEncodingName() - { - return "wicket1"; + // split each CDATA end sequence + return Strings.replaceAll(str, "]]>", "]]]]><![CDATA[>").toString(); } /** http://git-wip-us.apache.org/repos/asf/wicket/blob/87c38f29/wicket-core/src/main/java/org/apache/wicket/ajax/XmlAjaxResponse.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/XmlAjaxResponse.java b/wicket-core/src/main/java/org/apache/wicket/ajax/XmlAjaxResponse.java index 80c056e..e7048ec 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/XmlAjaxResponse.java +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/XmlAjaxResponse.java @@ -143,14 +143,7 @@ public abstract class XmlAjaxResponse extends AbstractAjaxResponse response.write("<component id=\""); response.write(markupId); - response.write("\" "); - if (encodingBodyResponse.isContentsEncoded()) - { - response.write(" encoding=\""); - response.write(getEncodingName()); - response.write("\" "); - } - response.write("><![CDATA["); + response.write("\" ><![CDATA["); response.write(encodingBodyResponse.getContents()); response.write("]]></component>"); @@ -168,18 +161,11 @@ public abstract class XmlAjaxResponse extends AbstractAjaxResponse { if (encodingHeaderResponse.getContents().length() != 0) { - response.write("<header-contribution"); - - if (encodingHeaderResponse.isContentsEncoded()) - { - response.write(" encoding=\""); - response.write(getEncodingName()); - response.write("\" "); - } + response.write("<header-contribution>"); // we need to write response as CDATA and parse it on client, // because konqueror crashes when there is a <script> element - response.write("><![CDATA[<head xmlns:wicket=\"http://wicket.apache.org\">"); + response.write("<![CDATA[<head xmlns:wicket=\"http://wicket.apache.org\">"); response.write(encodingHeaderResponse.getContents()); response.write("</head>]]>"); response.write("</header-contribution>"); @@ -221,24 +207,16 @@ public abstract class XmlAjaxResponse extends AbstractAjaxResponse */ private void writeEvaluation(final String invocation, final Response response, final CharSequence js) { - boolean encoded = false; CharSequence javascript = js; // encode the response if needed if (needsEncoding(js)) { - encoded = true; javascript = encode(js); } response.write("<"); response.write(invocation); - if (encoded) - { - response.write(" encoding=\""); - response.write(getEncodingName()); - response.write("\""); - } response.write(">"); response.write("<![CDATA["); http://git-wip-us.apache.org/repos/asf/wicket/blob/87c38f29/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js index e62451f..db9d210 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js @@ -1127,13 +1127,6 @@ } else { var text = Wicket.DOM.text(node); - // if the text was escaped, unescape it - // (escaping is done when the component body contains a CDATA section) - var encoding = node.getAttribute("encoding"); - if (encoding) { - text = Wicket.Head.Contributor.decode(encoding, text); - } - // replace the component Wicket.DOM.replace(element, text); } @@ -1162,12 +1155,6 @@ // get the javascript body var text = Wicket.DOM.text(node); - // unescape it if necessary - var encoding = node.getAttribute("encoding"); - if (encoding) { - text = Wicket.Head.Contributor.decode(encoding, text); - } - // aliases to improve performance var steps = context.steps; var log = Wicket.Log; @@ -2000,24 +1987,6 @@ Head: { Contributor: { - /** - * Decoding functionality - * - * Wicket sends rendered components and javascript as CDATA section of XML document. When the - * component body itself contains a CDATA section, Wicket needs to escape it properly. - */ - decode: function (encoding, text) { - - var decode1 = function (text) { - return replaceAll(text, "]^", "]"); - }; - - if (encoding === "wicket1") { - text = decode1(text); - } - return text; - }, - // Parses the header contribution element (returns a DOM tree with the contribution) parse: function (headerNode) { // the header contribution is stored as CDATA section in the header-contribution element. @@ -2028,11 +1997,6 @@ // get the header contribution text and unescape it if necessary var text = Wicket.DOM.text(headerNode); - var encoding = headerNode.getAttribute("encoding"); - - if (encoding !== null && encoding !== "") { - text = this.decode(encoding, text); - } if (Wicket.Browser.isKHTML()) { // konqueror crashes if there is a <script element in the xml, but <SCRIPT is fine. http://git-wip-us.apache.org/repos/asf/wicket/blob/87c38f29/wicket-core/src/test/java/org/apache/wicket/TestDetachPageAjaxResult.html ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/TestDetachPageAjaxResult.html b/wicket-core/src/test/java/org/apache/wicket/TestDetachPageAjaxResult.html index e446f29..1e951a4 100644 --- a/wicket-core/src/test/java/org/apache/wicket/TestDetachPageAjaxResult.html +++ b/wicket-core/src/test/java/org/apache/wicket/TestDetachPageAjaxResult.html @@ -1,15 +1,15 @@ -<?xml version="1.0" encoding="UTF-8"?><ajax-response><component id="comp1" ><![CDATA[<span wicket:id="comp" id="comp1">body</span>]]></component><header-contribution encoding="wicket1" ><![CDATA[<head xmlns:wicket="http://wicket.apache.org"><script type="text/javascript" src="../resource/org.apache.wicket.resource.JQueryResourceReference/jquery/jquery-1.11.3.js"></script> +<?xml version="1.0" encoding="UTF-8"?><ajax-response><component id="comp1" ><![CDATA[<span wicket:id="comp" id="comp1">body</span>]]></component><header-contribution><![CDATA[<head xmlns:wicket="http://wicket.apache.org"><script type="text/javascript" src="../resource/org.apache.wicket.resource.JQueryResourceReference/jquery/jquery-1.11.3.js"></script> <script type="text/javascript" src="../resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-event-jquery.js"></script> <script type="text/javascript" src="../resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-ajax-jquery.js"></script> <script type="text/javascript" src="../resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-ajax-jquery-debug.js"></script> <script type="text/javascript" id="wicket-ajax-debug-enable"> /*<![CDATA[*/ Wicket.Ajax.DebugWindow.enabled=true; -/*]^]^>*/ +/*]]]]><![CDATA[>*/ </script> <script type="text/javascript" id="wicket-ajax-base-url"> /*<![CDATA[*/ Wicket.Ajax.baseUrl="wicket/bookmarkable/org.apache.wicket.TestDetachPage?0-1.IBehaviorListener.0-comp"; -/*]^]^>*/ +/*]]]]><![CDATA[>*/ </script> </head>]]></header-contribution><evaluate><![CDATA[(function(){Wicket.Ajax.ajax({"u":"./org.apache.wicket.TestDetachPage?0-1.IBehaviorListener.0-comp","c":"comp1","e":"click"});})();]]></evaluate></ajax-response> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/wicket/blob/87c38f29/wicket-core/src/test/java/org/apache/wicket/ajax/DomReadyOrderPage_ajax_expected.html ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/ajax/DomReadyOrderPage_ajax_expected.html b/wicket-core/src/test/java/org/apache/wicket/ajax/DomReadyOrderPage_ajax_expected.html index adb5a77..4ee122b 100644 --- a/wicket-core/src/test/java/org/apache/wicket/ajax/DomReadyOrderPage_ajax_expected.html +++ b/wicket-core/src/test/java/org/apache/wicket/ajax/DomReadyOrderPage_ajax_expected.html @@ -1,15 +1,15 @@ -<?xml version="1.0" encoding="UTF-8"?><ajax-response><component id="test1" ><![CDATA[<a href="./org.apache.wicket.ajax.DomReadyOrderPage?0-1.ILinkListener-test" wicket:id="test" id="test1">Test</a>]]></component><header-contribution encoding="wicket1" ><![CDATA[<head xmlns:wicket="http://wicket.apache.org"><script type="text/javascript" src="../resource/org.apache.wicket.resource.JQueryResourceReference/jquery/jquery-1.11.3.js"></script> +<?xml version="1.0" encoding="UTF-8"?><ajax-response><component id="test1" ><![CDATA[<a href="./org.apache.wicket.ajax.DomReadyOrderPage?0-1.ILinkListener-test" wicket:id="test" id="test1">Test</a>]]></component><header-contribution><![CDATA[<head xmlns:wicket="http://wicket.apache.org"><script type="text/javascript" src="../resource/org.apache.wicket.resource.JQueryResourceReference/jquery/jquery-1.11.3.js"></script> <script type="text/javascript" src="../resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-event-jquery.js"></script> <script type="text/javascript" src="../resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-ajax-jquery.js"></script> <script type="text/javascript" src="../resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-ajax-jquery-debug.js"></script> <script type="text/javascript" id="wicket-ajax-debug-enable"> /*<![CDATA[*/ Wicket.Ajax.DebugWindow.enabled=true; -/*]^]^>*/ +/*]]]]><![CDATA[>*/ </script> <script type="text/javascript" id="wicket-ajax-base-url"> /*<![CDATA[*/ Wicket.Ajax.baseUrl="wicket/bookmarkable/org.apache.wicket.ajax.DomReadyOrderPage?0-1.IBehaviorListener.0-test"; -/*]^]^>*/ +/*]]]]><![CDATA[>*/ </script> </head>]]></header-contribution><evaluate><![CDATA[(function(){Wicket.Ajax.ajax({"u":"./org.apache.wicket.ajax.DomReadyOrderPage?0-1.IBehaviorListener.0-test","c":"test1","e":"click","pd":true});})();(function(){test1();})();(function(){test2();})();]]></evaluate></ajax-response> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/wicket/blob/87c38f29/wicket-core/src/test/java/org/apache/wicket/ajax/MockComponent1-expected.html ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/ajax/MockComponent1-expected.html b/wicket-core/src/test/java/org/apache/wicket/ajax/MockComponent1-expected.html index 146d40b..3ee776e 100644 --- a/wicket-core/src/test/java/org/apache/wicket/ajax/MockComponent1-expected.html +++ b/wicket-core/src/test/java/org/apache/wicket/ajax/MockComponent1-expected.html @@ -8,6 +8,6 @@ width: 200px; } -/*]^]^>*/ +/*]]]]><![CDATA[>*/ </style> </head>]]> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/wicket/blob/87c38f29/wicket-core/src/test/java/org/apache/wicket/ajax/markup/html/componentMap/SimpleTestPageExpectedResult-1.html ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/ajax/markup/html/componentMap/SimpleTestPageExpectedResult-1.html b/wicket-core/src/test/java/org/apache/wicket/ajax/markup/html/componentMap/SimpleTestPageExpectedResult-1.html index 7cb6ab0..3d51ff8 100644 --- a/wicket-core/src/test/java/org/apache/wicket/ajax/markup/html/componentMap/SimpleTestPageExpectedResult-1.html +++ b/wicket-core/src/test/java/org/apache/wicket/ajax/markup/html/componentMap/SimpleTestPageExpectedResult-1.html @@ -1,15 +1,15 @@ -<?xml version="1.0" encoding="UTF-8"?><ajax-response><component id="linja11" ><![CDATA[<span wicket:id="linja1" id="linja11">1</span>]]></component><header-contribution encoding="wicket1" ><![CDATA[<head xmlns:wicket="http://wicket.apache.org"><script type="text/javascript" src="../resource/org.apache.wicket.resource.JQueryResourceReference/jquery/jquery-1.11.3.js"></script> +<?xml version="1.0" encoding="UTF-8"?><ajax-response><component id="linja11" ><![CDATA[<span wicket:id="linja1" id="linja11">1</span>]]></component><header-contribution><![CDATA[<head xmlns:wicket="http://wicket.apache.org"><script type="text/javascript" src="../resource/org.apache.wicket.resource.JQueryResourceReference/jquery/jquery-1.11.3.js"></script> <script type="text/javascript" src="../resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-event-jquery.js"></script> <script type="text/javascript" src="../resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-ajax-jquery.js"></script> <script type="text/javascript" src="../resource/org.apache.wicket.ajax.AbstractDefaultAjaxBehavior/res/js/wicket-ajax-jquery-debug.js"></script> <script type="text/javascript" id="wicket-ajax-debug-enable"> /*<![CDATA[*/ Wicket.Ajax.DebugWindow.enabled=true; -/*]^]^>*/ +/*]]]]><![CDATA[>*/ </script> <script type="text/javascript" id="wicket-ajax-base-url"> /*<![CDATA[*/ Wicket.Ajax.baseUrl="wicket/bookmarkable/org.apache.wicket.ajax.markup.html.componentMap.SimpleTestPage?0-1.IBehaviorListener.0-testPanel-baseSpan-linja1"; -/*]^]^>*/ +/*]]]]><![CDATA[>*/ </script> </head>]]></header-contribution><evaluate><![CDATA[(function(){Wicket.Timer.set('linja11', function(){Wicket.Ajax.ajax({"u":"./org.apache.wicket.ajax.markup.html.componentMap.SimpleTestPage?0-1.IBehaviorListener.0-testPanel-baseSpan-linja1","c":"linja11"});}, 2000);})();]]></evaluate></ajax-response> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/wicket/blob/87c38f29/wicket-core/src/test/js/head.js ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/js/head.js b/wicket-core/src/test/js/head.js index 35c178c..9966749 100644 --- a/wicket-core/src/test/js/head.js +++ b/wicket-core/src/test/js/head.js @@ -251,31 +251,11 @@ jQuery(document).ready(function() { equal(newNumber, initialHeadElementsNumber + 1, 'A script element in the added element should be added and executed'); // 2 }); - - module("Contributor.decode"); - - test('Wicket.Head.Contributor.decode - remove trailing ^ from closing CDATA', function() { - var expected = '<![CDATA[some data]]>', - input = '<![CDATA[some data]]^>', - encoding = 'wicket1', - actual = Wicket.Head.Contributor.decode(encoding, input); - - equal(actual, expected); - }); - - test('Wicket.Head.Contributor.decode - no decoding because of wrong encoding', function() { - var expected = '<![CDATA[some data]]^>', - encoding = 'somethingWrong', - actual = Wicket.Head.Contributor.decode(encoding, expected); - - equal(actual, expected); - }); - module('Contributor.parse'); test('Wicket.Head.Contributor.parse - parse head element with three script elements inside', function() { - var xmlDocument = Wicket.Xml.parse('<header-contribution encoding="wicket1"><![CDATA[<head><script type="text/javascript" src="data/test.js"></script><script type="text/javascript" id="wicket-ajax-debug-enable">/*<![CDATA[*/wicketAjaxDebugEnable=true;/*]^]^>*/</script><script type="text/javascript" id="wicket-ajax-base-url">/*<![CDATA[*/Wicket.Ajax.baseUrl="clock";/*]^]^>*/</script></head>]]></header-contribution>'); + var xmlDocument = Wicket.Xml.parse('<header-contribution><![CDATA[<head><script type="text/javascript" src="data/test.js"></script><script type="text/javascript" id="wicket-ajax-debug-enable">/*<![CDATA[*/wicketAjaxDebugEnable=true;/*]]]]><![CDATA[>*/</script><script type="text/javascript" id="wicket-ajax-base-url">/*<![CDATA[*/Wicket.Ajax.baseUrl="clock";/*]]]]><![CDATA[>*/</script></head>]]></header-contribution>'); var xmlRootElement = xmlDocument.documentElement; var xmlElement = Wicket.Head.Contributor.parse(xmlRootElement); var isXml = jQuery.isXMLDoc(xmlElement);
