Author: johnh
Date: Thu Jan 21 23:44:00 2010
New Revision: 901927
URL: http://svn.apache.org/viewvc?rev=901927&view=rev
Log:
Add __isgadget=true beacon to all gadget renders to affirm the case in which
the gadget renderer is processing a gadget (differentiating from type=url). Use
this for gadgets.rpc initialization. This can/will be removed when IFPC is gone.
Modified:
incubator/shindig/trunk/features/src/main/javascript/features/rpc/rpc.js
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java
Modified:
incubator/shindig/trunk/features/src/main/javascript/features/rpc/rpc.js
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/features/src/main/javascript/features/rpc/rpc.js?rev=901927&r1=901926&r2=901927&view=diff
==============================================================================
--- incubator/shindig/trunk/features/src/main/javascript/features/rpc/rpc.js
(original)
+++ incubator/shindig/trunk/features/src/main/javascript/features/rpc/rpc.js
Thu Jan 21 23:44:00 2010
@@ -615,7 +615,7 @@
if (targetId === '..') {
// Gadget/IFRAME to container.
var rpctoken = opt_authtoken || params.rpctoken || params.ifpctok || "";
- if (gadgets.config) {
+ if (window['__isgadget'] === true) {
setupContainerGadgetContext(rpctoken);
} else {
setupContainerGenericIframe(rpctoken, opt_receiverurl);
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java?rev=901927&r1=901926&r2=901927&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriter.java
Thu Jan 21 23:44:00 2010
@@ -90,6 +90,7 @@
"a {color:#0000cc;}a:visited {color:#551a8b;}" +
"a:active {color:#ff0000;}" +
"body{margin: 0px;padding: 0px;background-color:white;}";
+ static final String IS_GADGET_BEACON = "window['__isgadget']=true;";
static final String INSERT_BASE_ELEMENT_KEY = "gadgets.insertBaseElement";
static final String FEATURES_KEY = "gadgets.features";
@@ -162,6 +163,7 @@
}
injectBaseTag(gadget, head);
+ injectGadgetBeacon(gadget, head);
injectFeatureLibraries(gadget, head);
// This can be one script block.
@@ -215,6 +217,12 @@
onloadScript.appendChild(bodyTag.getOwnerDocument().createTextNode(
"gadgets.util.runOnLoadHandlers();"));
}
+
+ protected void injectGadgetBeacon(Gadget gadget, Node headTag) throws
GadgetException {
+ Element beaconNode = headTag.getOwnerDocument().createElement("script");
+ beaconNode.setTextContent(IS_GADGET_BEACON);
+ headTag.appendChild(beaconNode);
+ }
/**
* Injects javascript libraries needed to satisfy feature dependencies.
Modified:
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java?rev=901927&r1=901926&r2=901927&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java
Thu Jan 21 23:44:00 2010
@@ -21,6 +21,7 @@
import static
org.apache.shindig.gadgets.render.RenderingGadgetRewriter.DEFAULT_CSS;
import static
org.apache.shindig.gadgets.render.RenderingGadgetRewriter.FEATURES_KEY;
import static
org.apache.shindig.gadgets.render.RenderingGadgetRewriter.INSERT_BASE_ELEMENT_KEY;
+import static
org.apache.shindig.gadgets.render.RenderingGadgetRewriter.IS_GADGET_BEACON;
import static org.easymock.classextension.EasyMock.createMock;
import static org.easymock.classextension.EasyMock.eq;
import static org.easymock.classextension.EasyMock.expect;
@@ -198,6 +199,8 @@
assertTrue("Missing opening html tag",
matcher.group(BEFORE_HEAD_GROUP).contains("<html>"));
// TODO: reinstate test when non-tag-reordering parser is used.
// assertTrue("Custom head content is missing.",
matcher.group(HEAD_GROUP).contains(head));
+ assertTrue("IsGadget beacon not included.",
+ matcher.group(HEAD_GROUP).contains("<script>" + IS_GADGET_BEACON +
"</script>"));
assertTrue("Forced javascript not included.",
matcher.group(HEAD_GROUP).contains("<script src=\"/js/foo\">"));
assertFalse("Default styling was injected when a doctype was specified.",