You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2012/05/25 12:28:48 UTC

git commit: WICKET-4573 AbstractAjaxTimerBehavior should escape the quotes for the code that it schedules to execute

Updated Branches:
  refs/heads/wicket-1.5.x 3a619a052 -> 0e9c60ff9


WICKET-4573 AbstractAjaxTimerBehavior should escape the quotes for the code that it schedules to execute


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/0e9c60ff
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/0e9c60ff
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/0e9c60ff

Branch: refs/heads/wicket-1.5.x
Commit: 0e9c60ff9d19a1a851f7bfd01ec6152357bfa283
Parents: 3a619a0
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Fri May 25 13:17:34 2012 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Fri May 25 13:17:34 2012 +0300

----------------------------------------------------------------------
 .../wicket/ajax/AbstractAjaxTimerBehavior.java     |    7 +++++--
 .../SimpleTestPageExpectedResult-1.html            |    2 +-
 .../componentMap/SimpleTestPageExpectedResult.html |    2 +-
 3 files changed, 7 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/0e9c60ff/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java
index 59bd557..b08c7c3 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java
@@ -21,6 +21,7 @@ import org.apache.wicket.Page;
 import org.apache.wicket.markup.html.IHeaderResponse;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.http.WebRequest;
+import org.apache.wicket.util.string.JavaScriptUtils;
 import org.apache.wicket.util.time.Duration;
 
 /**
@@ -114,8 +115,10 @@ public abstract class AbstractAjaxTimerBehavior extends AbstractDefaultAjaxBehav
 	 */
 	protected final String getJsTimeoutCall(final Duration updateInterval)
 	{
-		// this might look strange, but it is necessary for IE not to leak :(
-		return "setTimeout(\"" + getCallbackScript() + "\", " + updateInterval.getMilliseconds() +
+		CharSequence callbackScript = getCallbackScript();
+		callbackScript = JavaScriptUtils.escapeQuotes(callbackScript);
+		// use setTimeout(String) instead of setTimeout(function) because IE leaks memory
+		return "setTimeout(\"" + callbackScript + "\", " + updateInterval.getMilliseconds() +
 			");";
 	}
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/0e9c60ff/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 57ad6fe..a29982a 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
@@ -11,4 +11,4 @@ wicketAjaxDebugEnable=true;
 Wicket.Ajax.baseUrl="wicket/page?0-1.IBehaviorListener.0-testPanel-baseSpan-linja1";
 /*]^]^>*/
 </script>
-</head>]]></header-contribution><component id="linja11" ><![CDATA[<span wicket:id="linja1" id="linja11">1</span>]]></component><evaluate><![CDATA[setTimeout("var wcall=wicketAjaxGet('./page?0-1.IBehaviorListener.0-testPanel-baseSpan-linja1',function() { }.bind(this),function() { }.bind(this), function() {var c = Wicket.$('linja11'); return typeof(c) != 'undefined' && c != null}.bind(this));", 2000);]]></evaluate></ajax-response>
\ No newline at end of file
+</head>]]></header-contribution><component id="linja11" ><![CDATA[<span wicket:id="linja1" id="linja11">1</span>]]></component><evaluate><![CDATA[setTimeout("var wcall=wicketAjaxGet(\'./page?0-1.IBehaviorListener.0-testPanel-baseSpan-linja1\',function() { }.bind(this),function() { }.bind(this), function() {var c = Wicket.$(\'linja11\'); return typeof(c) != \'undefined\' && c != null}.bind(this));", 2000);]]></evaluate></ajax-response>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/wicket/blob/0e9c60ff/wicket-core/src/test/java/org/apache/wicket/ajax/markup/html/componentMap/SimpleTestPageExpectedResult.html
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/ajax/markup/html/componentMap/SimpleTestPageExpectedResult.html b/wicket-core/src/test/java/org/apache/wicket/ajax/markup/html/componentMap/SimpleTestPageExpectedResult.html
index eeeaec4..bae1ecd 100644
--- a/wicket-core/src/test/java/org/apache/wicket/ajax/markup/html/componentMap/SimpleTestPageExpectedResult.html
+++ b/wicket-core/src/test/java/org/apache/wicket/ajax/markup/html/componentMap/SimpleTestPageExpectedResult.html
@@ -16,7 +16,7 @@ Wicket.Ajax.baseUrl="wicket/bookmarkable/org.apache.wicket.ajax.markup.html.comp
 </script>
 <script type="text/javascript" >
 /*<![CDATA[*/
-Wicket.Event.add(window, "load", function(event) { setTimeout("var wcall=wicketAjaxGet('../page?0-1.IBehaviorListener.0-testPanel-baseSpan-linja1',function() { }.bind(this),function() { }.bind(this), function() {var c = Wicket.$('linja11'); return typeof(c) != 'undefined' && c != null}.bind(this));", 2000);;});
+Wicket.Event.add(window, "load", function(event) { setTimeout("var wcall=wicketAjaxGet(\'../page?0-1.IBehaviorListener.0-testPanel-baseSpan-linja1\',function() { }.bind(this),function() { }.bind(this), function() {var c = Wicket.$(\'linja11\'); return typeof(c) != \'undefined\' && c != null}.bind(this));", 2000);;});
 /*]]>*/
 </script>
 </head>