aboutsummaryrefslogtreecommitdiff
path: root/javascript/olm_pre.js
diff options
context:
space:
mode:
authorRichard van der Hoff <richard@matrix.org>2016-12-12 16:52:03 +0000
committerRichard van der Hoff <richard@matrix.org>2016-12-12 16:52:03 +0000
commit1bf807bf33b2a407e4d8a3f9785b522b5d384913 (patch)
tree47c7d522eda0681171019e9ff7d3d027a5db59e3 /javascript/olm_pre.js
parentf6c05be8c5d35e725a8a2ed5ad661398ac9f8cd2 (diff)
Better handling of exceptions during loading
If we get an exception during load, don't define half of window.Olm (which confuses apps). This is a partial fix to https://github.com/vector-im/riot-web/issues/2726.
Diffstat (limited to 'javascript/olm_pre.js')
-rw-r--r--javascript/olm_pre.js18
1 files changed, 5 insertions, 13 deletions
diff --git a/javascript/olm_pre.js b/javascript/olm_pre.js
index 50bf8c2..611488b 100644
--- a/javascript/olm_pre.js
+++ b/javascript/olm_pre.js
@@ -2,32 +2,24 @@ var olm_exports = {};
var get_random_values;
var process; // Shadow the process object so that emscripten won't get
// confused by browserify
-if (typeof(global) !== 'undefined' && global["window"]) {
- // We're running with browserify
- module["exports"] = olm_exports;
- global["window"]["Olm"] = olm_exports;
- get_random_values = function(buf) {
- window.crypto.getRandomValues(buf);
- };
-} else if (typeof(window) !== 'undefined') {
- // We've been imported directly into a browser.
- window["Olm"] = olm_exports;
+
+if (typeof(window) !== 'undefined') {
+ // We've in a browser (directly, via browserify, or via webpack).
get_random_values = function(buf) {
window.crypto.getRandomValues(buf);
};
} else if (module["exports"]) {
// We're running in node.
- module["exports"] = olm_exports;
var nodeCrypto = require("crypto");
get_random_values = function(buf) {
var bytes = nodeCrypto.randomBytes(buf.length);
buf.set(bytes);
- }
+ };
process = global["process"];
} else {
throw new Error("Cannot find global to attach library to");
}
-var init = function() {
+(function() {
var module; // Shadow the Node 'module' object so that emscripten won't try
// to fiddle with it.