1. 12 Oct, 2018 4 commits
  2. 11 Oct, 2018 1 commit
  3. 10 Oct, 2018 4 commits
  4. 09 Oct, 2018 1 commit
  5. 05 Oct, 2018 7 commits
  6. 04 Oct, 2018 1 commit
  7. 03 Oct, 2018 5 commits
  8. 02 Oct, 2018 6 commits
  9. 01 Oct, 2018 3 commits
  10. 27 Sep, 2018 1 commit
  11. 26 Sep, 2018 1 commit
  12. 25 Sep, 2018 3 commits
    • David Baker's avatar
      Breking change · 498562fa
      David Baker authored
    • David Baker's avatar
      Return same promise if init() called many times · dfbe8a47
      David Baker authored
      So we only init the library once.
    • David Baker's avatar
      Another day, another interface · 263b9442
      David Baker authored
      Change the interface again, hopefully this time a bit more normal.
      Now we wrap the emscripten module completely and just expose the
      high level objects.
      The olm library export is now imported as normal (ie. returns
      a module rather than a function returning a module) but has an
      `init` method which *must* be called. This returns a promise
      which resolves when the module is ready. It also rejects if the
      module failed to set up, unlike before (and unlike the
      promise-not-a-promise that emscripten returns).
      Generally catch failures to init the module.
  13. 21 Sep, 2018 3 commits
    • David Baker's avatar
      Also ship the wasm file · f29d8cdd
      David Baker authored
    • David Baker's avatar
      Make OLM_OPTIONS work again · 5e87db61
      David Baker authored
      The closure compiler was just renaming the variable so it never
      would have picked them up. Make it an extern so it knows what to do.
    • David Baker's avatar
      WebAssembly support! · 122867c4
      David Baker authored
      Quite a lot going on in this PR:
       * Updates to support recent emscripten, switching to WASM which is now the default
       * Use emscripten's MODULARIZE option rather than wrapping it ourself, since doing
         so in pre-post js doesn't work anymore.
       * Most changes are moving the emscripten runtime functions to top-level
         calls rather than in the Module object.
       * Get rid of duplicated NULL_BYTE_PADDING_LENGTH
       * Fix ciphertext_length used without being declared
       * Fix things that caused the closure compiler to error, eg. using
         OLM_OPTIONS without a declaration.
       * Wait until module is inited to do OLM_ERROR = olm_error()
      The main BREAKING CHANGE here is that the module now needs to initialise
      asyncronously (because it has to load the wasm file). require()ing olm
      now gives a function which needs to be called to create an instance.
      The resulting object has a promise-like then() method that can be used
      to detect when the module is ready. (We could use MODULARIZE_INSTANCE
      to return the module directly as before, rather than the function,
      but then we don't get the .then() method).