Author: lryan
Date: Fri Jan 30 01:44:42 2009
New Revision: 739136

URL: http://svn.apache.org/viewvc?rev=739136&view=rev
Log:
Fix for HTML rewriter to not rewriter script tags that are not javascript. 
Patch contributed by Lev Epshteyn.
https://issues.apache.org/jira/browse/SHINDIG-891

Modified:
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/HTMLContentRewriter.java

Modified: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/HTMLContentRewriter.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/HTMLContentRewriter.java?rev=739136&r1=739135&r2=739136&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/HTMLContentRewriter.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/HTMLContentRewriter.java
 Fri Jan 30 01:44:42 2009
@@ -17,15 +17,6 @@
  */
 package org.apache.shindig.gadgets.rewrite;
 
-import org.apache.shindig.common.uri.Uri;
-import org.apache.shindig.common.util.Utf8UrlCoder;
-import org.apache.shindig.common.xml.DomUtil;
-import org.apache.shindig.gadgets.Gadget;
-import org.apache.shindig.gadgets.http.HttpRequest;
-import org.apache.shindig.gadgets.http.HttpResponse;
-import org.apache.shindig.gadgets.servlet.ProxyBase;
-import org.apache.shindig.gadgets.spec.View;
-
 import com.google.common.base.Nullable;
 import com.google.common.base.Predicate;
 import com.google.common.collect.ImmutableMap;
@@ -33,10 +24,17 @@
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
-
 import com.google.inject.Inject;
 import com.google.inject.name.Named;
 
+import org.apache.shindig.common.uri.Uri;
+import org.apache.shindig.common.util.Utf8UrlCoder;
+import org.apache.shindig.common.xml.DomUtil;
+import org.apache.shindig.gadgets.Gadget;
+import org.apache.shindig.gadgets.http.HttpRequest;
+import org.apache.shindig.gadgets.http.HttpResponse;
+import org.apache.shindig.gadgets.servlet.ProxyBase;
+import org.apache.shindig.gadgets.spec.View;
 import org.w3c.dom.Element;
 import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
@@ -58,6 +56,8 @@
  */
 public class HTMLContentRewriter  implements ContentRewriter {
   private final static int MAX_URL_LENGTH = 1500;
+  
+  private final static String JS_MIME_TYPE = "text/javascript";
 
   public final static Set<String> TAGS = ImmutableSet.of("img", "embed", 
"link", "script", "style");
 
@@ -217,11 +217,15 @@
     List<Element> scriptTags = Lists.newArrayList(Iterables.filter(elementList,
         new Predicate<Element>() {
       public boolean apply(@Nullable Element node) {
-        return node.getNodeName().equalsIgnoreCase("script");
+        if (node.getNodeName().equalsIgnoreCase("script")) {
+          String type = node.getAttribute("type");
+          return type == null || type.length() == 0 || 
type.equalsIgnoreCase(JS_MIME_TYPE);
+        }
+        return false;
       }
     }));
 
-    String concatBase = getConcatBase(gadgetUri, feature, "text/javascript");
+    String concatBase = getConcatBase(gadgetUri, feature, JS_MIME_TYPE);
     List<Element> concatenateable = Lists.newArrayList();
     for (int i = 0; i < scriptTags.size(); i++) {
       Element scriptTag = scriptTags.get(i);


Reply via email to