Author: johnh
Date: Thu Apr 28 02:49:15 2011
New Revision: 1097310
URL: http://svn.apache.org/viewvc?rev=1097310&view=rev
Log:
Add option to pass referrer to full referrer to requestor. Behavior disabled by
default -- must be opted-in.
Modified:
shindig/trunk/features/src/main/javascript/features/rpc/rpc.js
Modified: shindig/trunk/features/src/main/javascript/features/rpc/rpc.js
URL:
http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/rpc/rpc.js?rev=1097310&r1=1097309&r2=1097310&view=diff
==============================================================================
--- shindig/trunk/features/src/main/javascript/features/rpc/rpc.js (original)
+++ shindig/trunk/features/src/main/javascript/features/rpc/rpc.js Thu Apr 28
02:49:15 2011
@@ -122,6 +122,7 @@ if (!window['gadgets']['rpc']) { // make
var params = {};
var receiverTx = {};
var earlyRpcQueue = {};
+ var passReferrer = false;
// isGadget =~ isChild for the purposes of rpc (used only in setup).
var isChild = (window.top !== window.self);
@@ -319,7 +320,7 @@ if (!window['gadgets']['rpc']) { // make
if (opt_sender) {
var origin = getOrigin(opt_sender);
rpc[RPC_KEY_ORIGIN] = opt_sender;
- var referrer = document.referrer;
+ var referrer = rpc['r'] || document.referrer;
if (!referrer || getOrigin(referrer) != origin) {
// Transports send along as much info as they can about the sender
// of the message; 'origin' is the origin component alone, while
@@ -479,7 +480,7 @@ if (!window['gadgets']['rpc']) { // make
var callback = callbacks[callbackId];
if (callback) {
delete callbacks[callbackId];
- callback(result);
+ callback.call(this, result);
}
};
@@ -651,6 +652,7 @@ if (!window['gadgets']['rpc']) { // make
transport.init(process, transportReady);
}
setAuthToken('..', rpctoken, opt_forcesecure || params['forcesecure']);
+ passReferrer = String(cfg['passReferrer']) === 'true';
}
gadgets.config.register('rpc', null, init);
}
@@ -869,6 +871,10 @@ if (!window['gadgets']['rpc']) { // make
'l': useLegacyProtocol[targetId]
};
+ if (passReferrer) {
+ rpc['r'] = window.location.href;
+ }
+
if (targetId !== '..' &&
parseSiblingId(targetId) == null && // sibling never in the
document
!document.getElementById(targetId)) {