Author: johnh
Date: Thu Feb 19 03:19:07 2009
New Revision: 745717

URL: http://svn.apache.org/viewvc?rev=745717&view=rev
Log:
Ignore window.postMessage(...) calls that are doomed to fail on account of a 
targetOrigin parameter provided that doesn't contain scheme/host/port. This 
allows gadgets to render on FF3 in contexts where gadgets.rpc isn't supported, 
rather than simply breaking them outright.


Modified:
    incubator/shindig/trunk/features/rpc/rpc.js

Modified: incubator/shindig/trunk/features/rpc/rpc.js
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/features/rpc/rpc.js?rev=745717&r1=745716&r2=745717&view=diff
==============================================================================
--- incubator/shindig/trunk/features/rpc/rpc.js (original)
+++ incubator/shindig/trunk/features/rpc/rpc.js Thu Feb 19 03:19:07 2009
@@ -696,7 +696,12 @@
             break;
           }
         }
-        relayUrl['..'] = parentParam + config.rpc.parentRelayUrl;
+        if (parentParam !== "") {
+          // Otherwise, relayUrl['..'] will be null, signaling transport
+          // code to ignore rpc calls since they cannot work without a
+          // relay URL with host qualification.
+          relayUrl['..'] = parentParam + config.rpc.parentRelayUrl;
+        }
       }
       useLegacyProtocol['..'] = !!config.rpc.useLegacyProtocol;
     }
@@ -826,7 +831,10 @@
 
         case 'wpm': // use window.postMessage.
           var targetWin = targetId === '..' ? parent : frames[targetId];
-          targetWin.postMessage(rpcData, relayUrl[targetId]);
+          var relay = gadgets.rpc.getRelayUrl(targetId);
+          if (relay) {
+            targetWin.postMessage(rpcData, relay);
+          }
           break;
 
         case 'nix': // use NIX.


Reply via email to