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

Reply via email to