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.",


Reply via email to