You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by li...@apache.org on 2009/07/25 00:34:25 UTC
svn commit: r797677 - in /incubator/shindig/trunk:
features/src/main/javascript/features/caja/
features/src/main/javascript/features/opensocial-reference/
java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/
javascript/samplecontainer/
Author: lindner
Date: Fri Jul 24 22:34:25 2009
New Revision: 797677
URL: http://svn.apache.org/viewvc?rev=797677&view=rev
Log:
SHINDIG-1124 | ugprade to caja r3574
* removes libs=caja from url params in sample container - the behavior for this appears to have changed in shindig
* changes to CajaContentRewriter to ensure error messages from caja are properly escaped
* changes to CajaContentRewriter to handle the new static html output
Modified:
incubator/shindig/trunk/features/src/main/javascript/features/caja/caja.js
incubator/shindig/trunk/features/src/main/javascript/features/opensocial-reference/container.js
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/CajaContentRewriter.java
incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.js
Modified: incubator/shindig/trunk/features/src/main/javascript/features/caja/caja.js
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/features/src/main/javascript/features/caja/caja.js?rev=797677&r1=797676&r2=797677&view=diff
==============================================================================
--- incubator/shindig/trunk/features/src/main/javascript/features/caja/caja.js (original)
+++ incubator/shindig/trunk/features/src/main/javascript/features/caja/caja.js Fri Jul 24 22:34:25 2009
@@ -29,7 +29,6 @@
provide: ___.func(function(v) { valijaMaker = v; })
};
___.grantRead(imports, 'loader');
- ___.grantCall(imports.loader, 'provide');
___.getNewModuleHandler().setImports(imports);
___.getNewModuleHandler().handleUncaughtException = function(e) {
throw e;
Modified: incubator/shindig/trunk/features/src/main/javascript/features/opensocial-reference/container.js
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/features/src/main/javascript/features/opensocial-reference/container.js?rev=797677&r1=797676&r2=797677&view=diff
==============================================================================
--- incubator/shindig/trunk/features/src/main/javascript/features/opensocial-reference/container.js (original)
+++ incubator/shindig/trunk/features/src/main/javascript/features/opensocial-reference/container.js Fri Jul 24 22:34:25 2009
@@ -691,15 +691,11 @@
var imports = ___.copy(___.sharedImports);
imports.outers = imports;
- var gadgetRoot = document.createElement('div');
+ var gadgetRoot = document.getElementById('cajoled-output');
gadgetRoot.className = 'g___';
document.body.appendChild(gadgetRoot);
imports.htmlEmitter___ = new HtmlEmitter(gadgetRoot);
- imports.getCssContainer___ = function () {
- return gadgetRoot;
- };
-
attachDocumentStub('-g___', uriCallback, imports, gadgetRoot);
imports.$v = valijaMaker.CALL___(imports.outers);
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/CajaContentRewriter.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/CajaContentRewriter.java?rev=797677&r1=797676&r2=797677&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/CajaContentRewriter.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/CajaContentRewriter.java Fri Jul 24 22:34:25 2009
@@ -21,6 +21,8 @@
import org.apache.commons.lang.StringUtils;
import org.apache.shindig.gadgets.Gadget;
import org.apache.shindig.gadgets.rewrite.MutableContent;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
import java.io.IOException;
import java.io.InputStreamReader;
@@ -39,6 +41,7 @@
import com.google.caja.opensocial.GadgetRewriteException;
import com.google.caja.opensocial.UriCallback;
import com.google.caja.opensocial.UriCallbackException;
+import com.google.caja.parser.html.Nodes;
import com.google.caja.reporting.BuildInfo;
import com.google.caja.reporting.Message;
import com.google.caja.reporting.MessageContext;
@@ -93,25 +96,30 @@
FilePosition.instance(is, 5, 5, 5));
StringBuilder output = new StringBuilder();
- // Secure default to remove content in case there
- // are problems cajoling a gadget
- content.setContent("");
+ Document doc = content.getDocument();
try {
- rw.rewriteContent(retrievedUri, input, cb, output);
- } catch (GadgetRewriteException e) {
- content.setContent(messagesToHtml(is, origContent, mq));
- throwCajolingException(e, mq);
- return;
- } catch (IOException e) {
- content.setContent(messagesToHtml(is, origContent, mq));
+ StringBuilder htmlAndJs = new StringBuilder();
+ rw.rewriteContent(retrievedUri, input, cb, htmlAndJs);
+ int splitPoint = htmlAndJs.indexOf("<script");
+ String script = htmlAndJs.substring(splitPoint);
+ String html = htmlAndJs.substring(0, splitPoint);
+ String htmlElement =
+ "<div id=\"cajoled-output\" class=\"g___\">" +
+ html +
+ "</div>";
+ output.append(htmlElement);
+ output.append(tameCajaClientApi());
+ output.append(script);
+ } catch (Exception e) {
+ content.setContent(messagesToHtml(doc, is, origContent, mq));
throwCajolingException(e, mq);
return;
}
- content.setContent(tameCajaClientApi() + output);
+ content.setContent(output.toString());
}
}
- private String messagesToHtml(InputSource is, CharSequence orig, MessageQueue mq) {
+ private String messagesToHtml(Document doc, InputSource is, CharSequence orig, MessageQueue mq) {
MessageContext mc = new MessageContext();
Map<InputSource, CharSequence> originalSrc = Maps.newHashMap();
originalSrc.put(is, orig);
@@ -119,7 +127,6 @@
SnippetProducer sp = new SnippetProducer(originalSrc, mc);
StringBuilder messageText = new StringBuilder();
- messageText.append("<pre>");
for (Message msg : mq.getMessages()) {
// Ignore LINT messages
if (MessageLevel.LINT.compareTo(msg.getMessageLevel()) <= 0) {
@@ -133,7 +140,8 @@
}
}
}
- messageText.append("</pre>");
+ Element errElement = doc.createElement("pre");
+ errElement.appendChild(doc.createTextNode(messageText.toString()));
return messageText.toString();
}
Modified: incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.js
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.js?rev=797677&r1=797676&r2=797677&view=diff
==============================================================================
--- incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.js (original)
+++ incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.js Fri Jul 24 22:34:25 2009
@@ -99,7 +99,7 @@
var params = '';
if (useCaja) {
- params += "&caja=1&libs=caja";
+ params += "&caja=1";
}
if (useDebug) {
params += "&debug=1";