You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by le...@google.com on 2009/01/27 02:03:36 UTC

Use HTMLContentRewriter by default

Reviewers: shindig-dev, lryan,

Description:
Uses HTMLContentRewriter instead of DefaultContentRewriter
(TODO: Should DefaultCR be removed?)

Adds script @type filtering to HTMLContentReweriter (so it only
processes scripts of where @type is undefined or set to text/html).

Please review this at http://codereview.appspot.com/12516

Affected files:
    
java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java
    
java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/HTMLContentRewriter.java


Index:  
java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/HTMLContentRewriter.java
===================================================================
---  
java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/HTMLContentRewriter.java	 
(revision 737935)
+++  
java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/HTMLContentRewriter.java	 
(working copy)
@@ -58,6 +58,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 +219,16 @@
      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");
+          System.out.println("NODE: " + node.getNodeName() + "; Type: " +  
type);
+          return 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);
Index:  
java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java
===================================================================
---  
java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java	 
(revision 737935)
+++  
java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java	 
(working copy)
@@ -30,7 +30,7 @@
  import org.apache.shindig.gadgets.preload.Preloader;
  import org.apache.shindig.gadgets.render.RenderingContentRewriter;
  import org.apache.shindig.gadgets.rewrite.ContentRewriter;
-import org.apache.shindig.gadgets.rewrite.lexer.DefaultContentRewriter;
+import org.apache.shindig.gadgets.rewrite.HTMLContentRewriter;
  import org.apache.shindig.gadgets.servlet.CajaContentRewriter;

  import java.util.List;
@@ -64,7 +64,7 @@
      private final List<ContentRewriter> rewriters;

      @Inject
-    public ContentRewritersProvider(DefaultContentRewriter  
optimizingRewriter,
+    public ContentRewritersProvider(HTMLContentRewriter optimizingRewriter,
                                      CajaContentRewriter cajaRewriter,
                                      RenderingContentRewriter  
renderingRewriter) {
        rewriters = Lists.newArrayList();