App checks at startup for an existing session, if there isn't one,
it will start the tool to check for a login in the file:// origin.
If there is one, it will copy the login over to the vector://vector
origin.
In principle this could also be used to migrate logins between
other origins on the web if this were ever required.
This includes a minified copy of the browserified js-sdk with
a getAllEndToEndSessions() function added to the crypto store
(https://github.com/matrix-org/matrix-js-sdk/pull/812). This is
not great, but for a short-lived tool this seems better than
introducing more entry points into webpack only used for the
electron app.
The classes on the search box input were changed without updating the focusing
loop in the room filter which used one of these classes as a boundary condition.
This led to a case that could loop forever.
Regressed by #2267.
Fixesvector-im/riot-web#7926.
Looks like this was broken in the webpack 4 upgrade due to the
worker script setter and the bundle being re-ordered in index.html.
* Remove the loop: we only use two scripts now, so import them
explicitly
* Remove outdated olm import code.
* Stop generating a script import for each theme: we were pulling
in 3 js files that did absolutely nothing.
* Fix worker 'onmessage' scope (set it as a global rather than
trying to make it an ES6 module which it isn't).
* Fail hard if the indexeddb worker script isn't set to avoid
this happening again.
Looks like this was broken in the webpack 4 upgrade due to the
worker script setter and the bundle being re-ordered in index.html.
* Remove the loop: we only use two scripts now, so import them
explicitly
* Remove outdated olm import code.
* Stop generating a script import for each theme: we were pulling
in 3 js files that did absolutely nothing.
* Fix worker 'onmessage' scope (set it as a global rather than
trying to make it an ES6 module which it isn't).
* Fail hard if the indexeddb worker script isn't set to avoid
this happening again.
It's possible to get errors when fetching commits (for example, if the rate
limit is exceeded), so this will handle the error case and display it instead of
an infinite spinner.
Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
This puts the app into its own origin so it doesn't have access
to the filesystem via file:// URIs.
Next step: migrate over localstorage & indexeddb data from the old
origin...