You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-08-12 08:42:46 +03:00
Load Olm from the global rather than requiring it.
This means that we can avoid confusing everybody in the world about how to webpack js-sdk apps.
This commit is contained in:
18
README.md
18
README.md
@@ -236,6 +236,24 @@ host the API reference from the source files like this:
|
|||||||
|
|
||||||
Then visit ``http://localhost:8005`` to see the API docs.
|
Then visit ``http://localhost:8005`` to see the API docs.
|
||||||
|
|
||||||
|
End-to-end encryption support
|
||||||
|
=============================
|
||||||
|
|
||||||
|
The SDK supports end-to-end encryption via the Olm and Megolm protocols, using
|
||||||
|
[libolm](http://matrix.org/git/olm). It is left up to the application to make
|
||||||
|
libolm available, via the ``Olm`` global.
|
||||||
|
|
||||||
|
To enable support in a browser application:
|
||||||
|
|
||||||
|
* download the transpiled libolm (either via ``npm install olm``, or from
|
||||||
|
https://matrix.org/packages/npm/olm/).
|
||||||
|
* load ``olm.js`` as a ``<script>`` *before* ``browser-matrix.js``.
|
||||||
|
|
||||||
|
To enable support in a node.js application:
|
||||||
|
|
||||||
|
* ``npm install olm``
|
||||||
|
* ``require('olm');`` *before* ``matrix-js-sdk``.
|
||||||
|
|
||||||
Contributing
|
Contributing
|
||||||
============
|
============
|
||||||
*This section is for people who want to modify the SDK. If you just
|
*This section is for people who want to modify the SDK. If you just
|
||||||
|
@@ -73,16 +73,9 @@
|
|||||||
"uglify-js": "^2.8.26",
|
"uglify-js": "^2.8.26",
|
||||||
"watchify": "^3.2.1"
|
"watchify": "^3.2.1"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
|
||||||
"olm": "https://matrix.org/packages/npm/olm/olm-2.2.1.tgz"
|
|
||||||
},
|
|
||||||
"browserify": {
|
"browserify": {
|
||||||
"transform": [
|
"transform": [
|
||||||
"sourceify",
|
"sourceify"
|
||||||
"browserify-shim"
|
|
||||||
]
|
]
|
||||||
},
|
|
||||||
"browserify-shim": {
|
|
||||||
"olm": "global:Olm"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -47,8 +47,7 @@ try {
|
|||||||
var Crypto = require("./crypto");
|
var Crypto = require("./crypto");
|
||||||
CRYPTO_ENABLED = true;
|
CRYPTO_ENABLED = true;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error("olm load error", e);
|
console.warn("Unable to load crypto module: crypto will be disabled: " + e);
|
||||||
// Olm not installed.
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -20,11 +20,9 @@ limitations under the License.
|
|||||||
*
|
*
|
||||||
* @module crypto/OlmDevice
|
* @module crypto/OlmDevice
|
||||||
*/
|
*/
|
||||||
const Olm = require("olm");
|
const Olm = global.Olm;
|
||||||
if (!Olm) {
|
if (!Olm) {
|
||||||
// this happens if we were loaded via browserify and the Olm module was not
|
throw new Error("global.Olm is not defined");
|
||||||
// loaded.
|
|
||||||
throw new Error("Olm is not defined");
|
|
||||||
}
|
}
|
||||||
const utils = require("../utils");
|
const utils = require("../utils");
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user