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();