We can't not load the crypto libs, breaks r.js optimizer

This commit is contained in:
JC Brand 2013-11-15 22:51:36 +02:00
parent 4a1eac06cb
commit 518c0fca8a
3 changed files with 31 additions and 22 deletions

View File

@ -12,6 +12,18 @@
console = { log: function () {}, error: function () {} }; console = { log: function () {}, error: function () {} };
} }
if (typeof define === 'function' && define.amd) { if (typeof define === 'function' && define.amd) {
var on_load = function(CryptoJS, otr) {
// Use Mustache style syntax for variable interpolation
_.templateSettings = {
evaluate : /\{\[([\s\S]+?)\]\}/g,
interpolate : /\{\{([\s\S]+?)\}\}/g
};
if (typeof otr !== "undefined") {
return factory(jQuery, _, CryptoJS, otr.OTR, otr.DSA, console);
} else {
return factory(jQuery, _, undefined, undefined, undefined, console);
}
};
var dependencies = [ var dependencies = [
"crypto", "crypto",
"otr", "otr",
@ -24,28 +36,25 @@
"strophe.vcard", "strophe.vcard",
"strophe.disco" "strophe.disco"
]; ];
try {
if ((typeof crypto === 'undefined') || define("converse", [
( (typeof crypto.randomBytes !== 'function') && "crypto",
(typeof crypto.getRandomValues !== 'function') "otr",
)) { "locales",
"backbone.localStorage",
"jquery.tinysort",
"strophe",
"strophe.muc",
"strophe.roster",
"strophe.vcard",
"strophe.disco"
], on_load);
} catch (e) {
console.log(e);
// Don't load crypto stuff if the browser doesn't have a CSRNG // Don't load crypto stuff if the browser doesn't have a CSRNG
dependencies.splice(0, 2); dependencies.splice(0, 2);
define("converse", dependencies, on_load);
} }
define("converse", dependencies, function(CryptoJS, otr) {
// Use Mustache style syntax for variable interpolation
_.templateSettings = {
evaluate : /\{\[([\s\S]+?)\]\}/g,
interpolate : /\{\{([\s\S]+?)\}\}/g
};
if (typeof otr !== "undefined") {
return factory(jQuery, _, CryptoJS, otr.OTR, otr.DSA, console);
} else {
return factory(jQuery, _, undefined, undefined, undefined, console);
}
}
);
} else { } else {
// Browser globals // Browser globals
_.templateSettings = { _.templateSettings = {

2
converse.min.js vendored

File diff suppressed because one or more lines are too long

View File

@ -6,8 +6,8 @@
<meta name="description" content="Converse.js: Open Source Browser-Based Instant Messaging" /> <meta name="description" content="Converse.js: Open Source Browser-Based Instant Messaging" />
<link rel="stylesheet" type="text/css" media="screen" href="stylesheets/stylesheet.css"> <link rel="stylesheet" type="text/css" media="screen" href="stylesheets/stylesheet.css">
<link rel="stylesheet" type="text/css" media="screen" href="converse.css"> <link rel="stylesheet" type="text/css" media="screen" href="converse.css">
<script data-main="main" src="components/requirejs/require.js"></script> <!--<script data-main="main" src="components/requirejs/require.js"></script>-->
<!-- <script src="converse.min.js"></script>--> <script src="converse.min.js"></script>
<title>Converse.js</title> <title>Converse.js</title>
</head> </head>