in salesforce/canvas/public/javascripts/canvas-all.js [886:938]
function receiveMessage(callback, source_origin) {
if (window.postMessage) {
if (callback) {
internalCallback = function (e) {
var data, r;
var sfdcJson = Sfdc.JSON || JSON;
$$.console.log('Post Message Got callback', e);
if (!$$.isNil(e)) {
if (
typeof source_origin === 'string' &&
e.origin !== source_origin
) {
$$.console.log(
"source origin's don't match",
e.origin,
source_origin
);
return false;
}
if ($$.isFunction(source_origin)) {
r = source_origin(e.origin, e.data);
if (r === false) {
$$.console.log(
"source origin's function returning false",
e.origin,
e.data
);
return false;
}
}
if ($$.appearsJson(e.data)) {
try {
data = sfdcJson.parse(e.data);
} catch (ignore) {}
if (
!$$.isNil(data) &&
($$.isNil(data.targetModule) ||
data.targetModule === 'Canvas')
) {
$$.console.log('Invoking callback');
callback(data, r);
}
}
}
};
}
if (window.addEventListener) {
window.addEventListener('message', internalCallback, false);
} else {
window.attachEvent('onmessage', internalCallback);
}
}
}