Hi people, I'm working whit Caja and the PHP version of Shindig, for the
moment I'm able to run some small gadgets, but I got
problems with more complex Gadgets because I can't tamed some functions.
With the gadget that I'm probing i got this error
uncajoled_1295467862.html:6: callMethod: [object Object] has no method
registerOnLoadHandler
To load the client runtime I'm loading this scripts (caja feature)
<script src="json_sans_eval.js"/>
<script src="cajita.js"/>
<script src="unicode.js"/>
<script src="css-defs.js"/>
<script src="html4-defs.js"/>
<script src="html-sanitizer.js"/>
<script src="html-emitter.js"/>
<script src="bridal.js"/>
<script src="domita.js"/>
<script src="setup-valija.js"/>
<script src="valija.out.js"/>
<script src="log-to-console.js" />
<script src="uri.js"/>
<script src="cajita-promise.js"/>
<script src="cajita-module-orig.js"/>
<script src="taming.js" />
<script src="init-valija.js" />
init-valija is the script that I'm using to initialize the environment.
function setGadgetContainer(containerId){
gadgetRoot = document.getElementById(containerId);
imports.htmlEmitter___ = new HtmlEmitter(gadgetRoot);
attachDocumentStub('-g___', {
rewrite: function(){
return null;
}
}, imports, gadgetRoot);
imports.$v = valijaMaker.CALL___(imports.outers);
___.getNewModuleHandler().setImports(imports);
}
function whitelistFuncs(schemas) {
var length = schemas.length;
for (var i = 0; i < length; i++) {
var schema = schemas[i];
if (typeof schema[0][schema[1]] === 'function') {
___.markInnocent(schema[0][schema[1]], schema[1]);
console.log('marked');
} else {
gadgets.warn('Error taming function: ' + schema[0] + '.' + schema[1]);
console.log('not marked');
}
}
}
var imports = ___.copy(___.sharedImports);
imports.outers = imports;
imports.outers.gadgets = ___.tame(window.gadgets);
imports.outers.opensocial = ___.tame(window.opensocial);
___.grantRead(imports.outers, 'gadgets');
___.grantRead(imports.outers, 'opensocial');
whitelistFuncs([
[gadgets.util, 'escapeString'],
[gadgets.util, 'getFeatureParameters'],
[gadgets.util, 'getUrlParameters'],
[gadgets.util, 'hasFeature'],
[gadgets.util, 'registerOnLoadHandler'],
[gadgets.util, 'unescapeString']
]);
var gadgetRoot = "";
Seems like caja doesn't tame the registerOnLoadHandler function.
Can anyone help me with this ? How is the correct way for tame any functions
?
Thanks in advance.
Regards
--
Ing. Casiva Agustin
Mail/Msn/GTalk/Jabber: [email protected]
Skype: casivaagustin
CEL : 054-03722-15270639
Site: http://www.casivaagustin.com.ar