// Load #1, load as little as possible because we are in a race to get the loading screen up. define([ '/bower_components/nthen/index.js', '/api/config', '/common/dom-ready.js', '/common/sframe-common-outer.js' ], function (nThen, ApiConfig, DomReady, SFCommonO) { // Loaded in load #2 nThen(function (waitFor) { DomReady.onReady(waitFor()); }).nThen(function (waitFor) { SFCommonO.initIframe(waitFor, true); }).nThen(function (/*waitFor*/) { var category; if (window.location.hash) { category = window.location.hash.slice(1); window.location.hash = ''; } var addRpc = function (sframeChan, CryptPad, Utils) { // X2T sframeChan.on('Q_OO_CONVERT', function (obj, cb) { obj.modal = 'x2t'; Utils.initUnsafeIframe(obj, cb); }); }; var addData = function (obj) { if (category) { obj.category = category; } }; SFCommonO.start({ noRealtime: true, addRpc: addRpc, addData: addData }); }); });