You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.5 KiB
JavaScript
36 lines
1.5 KiB
JavaScript
// This is stage 1, it can be changed but you must bump the version of the project.
|
|
// Note: This must only be loaded from inside of a sandbox-iframe.
|
|
define(['/common/requireconfig.js'], function (RequireConfig) {
|
|
require.config(RequireConfig);
|
|
|
|
// most of CryptPad breaks if you don't support isArray
|
|
if (!Array.isArray) {
|
|
Array.isArray = function(arg) { // CRYPTPAD_SHIM
|
|
return Object.prototype.toString.call(arg) === '[object Array]';
|
|
};
|
|
}
|
|
|
|
// In the event that someone clicks a link in the iframe, it's going to cause the iframe
|
|
// to navigate away from the pad which is going to be a mess. Instead we'll just reload
|
|
// the top level and then it will be simply that a link doesn't work properly.
|
|
window.onunload = function () {
|
|
window.parent.location.reload();
|
|
};
|
|
|
|
// Make sure anything which might have leaked to the localstorage is always cleaned up.
|
|
try { window.localStorage.clear(); } catch (e) { }
|
|
try { window.sessionStorage.clear(); } catch (e) { }
|
|
|
|
var mkFakeStore = function () {
|
|
var fakeStorage = {
|
|
getItem: function (k) { return fakeStorage[k]; },
|
|
setItem: function (k, v) { fakeStorage[k] = v; return v; }
|
|
};
|
|
return fakeStorage;
|
|
};
|
|
window.__defineGetter__('localStorage', function () { return mkFakeStore(); });
|
|
window.__defineGetter__('sessionStorage', function () { return mkFakeStore(); });
|
|
|
|
require([document.querySelector('script[data-bootload]').getAttribute('data-bootload')]);
|
|
});
|