You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wookie.apache.org by sc...@apache.org on 2013/02/26 12:05:07 UTC
svn commit: r1450132 - in /wookie/trunk/src/org/apache/wookie/util/html:
HtmlCleaner.java HtmlSerializer.java
Author: scottbw
Date: Tue Feb 26 11:05:06 2013
New Revision: 1450132
URL: http://svn.apache.org/r1450132
Log:
Deprecated our custom HtmlSerializer implementation and replaced with the default SimpleHtmlSerializer from HtmlCleaner; this does the same job when configured with the allowHtmlInsideAttributes property set. Also replaced "getChildren" with "getChildTagNodes" as in future versions of HtmlCleaner this method is not guaranteed to always return only TagNode objects.
Modified:
wookie/trunk/src/org/apache/wookie/util/html/HtmlCleaner.java
wookie/trunk/src/org/apache/wookie/util/html/HtmlSerializer.java
Modified: wookie/trunk/src/org/apache/wookie/util/html/HtmlCleaner.java
URL: http://svn.apache.org/viewvc/wookie/trunk/src/org/apache/wookie/util/html/HtmlCleaner.java?rev=1450132&r1=1450131&r2=1450132&view=diff
==============================================================================
--- wookie/trunk/src/org/apache/wookie/util/html/HtmlCleaner.java (original)
+++ wookie/trunk/src/org/apache/wookie/util/html/HtmlCleaner.java Tue Feb 26 11:05:06 2013
@@ -21,6 +21,7 @@ import java.util.List;
import org.htmlcleaner.CleanerProperties;
import org.htmlcleaner.DoctypeToken;
+import org.htmlcleaner.SimpleHtmlSerializer;
import org.htmlcleaner.TagNode;
/**
@@ -66,6 +67,11 @@ public class HtmlCleaner implements IHtm
properties.setAdvancedXmlEscape(true);
properties.setRecognizeUnicodeChars(false);
+ //
+ // Ensure we don't escape scripts within event handlers
+ //
+ properties.setAllowHtmlInsideAttributes(true);
+
}
/* (non-Javadoc)
@@ -138,9 +144,8 @@ public class HtmlCleaner implements IHtm
public void process(Writer writer) throws IOException{
if (reader == null) throw new IOException("No file has been specified to process");
if (writer == null) throw new IOException("No writer provided");
- replaceUserScripts();
- HtmlSerializer ser = new HtmlSerializer(properties);
- ser.writeXml(htmlNode, writer, "UTF-8");
+ replaceUserScripts();
+ new SimpleHtmlSerializer(properties).write(htmlNode, writer, "UTF-8");
}
@@ -162,7 +167,7 @@ public class HtmlCleaner implements IHtm
*/
@SuppressWarnings("unchecked")
private void getUserScripts(){
- List<TagNode> children = headNode.getChildren();
+ List<TagNode> children = headNode.getChildTagList();
for(TagNode child : children){
if(child.getName().equals(SCRIPT_TAG)){
scriptList.add(child);
Modified: wookie/trunk/src/org/apache/wookie/util/html/HtmlSerializer.java
URL: http://svn.apache.org/viewvc/wookie/trunk/src/org/apache/wookie/util/html/HtmlSerializer.java?rev=1450132&r1=1450131&r2=1450132&view=diff
==============================================================================
--- wookie/trunk/src/org/apache/wookie/util/html/HtmlSerializer.java (original)
+++ wookie/trunk/src/org/apache/wookie/util/html/HtmlSerializer.java Tue Feb 26 11:05:06 2013
@@ -30,6 +30,7 @@ import org.htmlcleaner.XmlSerializer;
* event handler attributes such as "onClick". In other respects it is identical
* to SimpleXmlSerializer.
*/
+@Deprecated
public class HtmlSerializer extends XmlSerializer {
/**