Commit Graph

41 Commits

Author SHA1 Message Date
David Baker 751a1dc543 Add tool to migrate logins between origins
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.
2018-12-21 19:14:25 +00:00
David Baker fc4e1485ad Electron: Load app from custom protocol
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...
2018-12-19 12:04:40 +00:00
David Baker b35903bb19
Merge pull request #7907 from vector-im/dbkr/electron_sandbox
Run the Desktop app in a sandbox
2018-12-19 09:48:10 +00:00
David Baker 60d3076038 Update to new electron single instance API 2018-12-18 18:10:09 +00:00
David Baker 19f1489c92 Run the Desktop app in a sandbox
* Turn off node integration in the electron renderer process
 * Enable the chromium sandbox to put the renderer into its own process
 * Expose just the ipc module with a preload script
 * Introduce a little IPC call wrapper so we can call into the
   renderer process and await on the result.
 * Use this in a bunch of places we previously used direct calls
   to electron modules.
 * Convert other uses of node, eg. use of process to derive the
   platform (just look at the user agent)
 * Strip out the desktopCapturer integration which doesn't appear
   to have ever worked (probably best to just wait until
   getDisplayMedia() is available in chrome at this point:
   https://github.com/vector-im/riot-web/issues/4880).
2018-12-18 17:42:55 +00:00
Michael Telatynski e0bb6183a6
remove debug log
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-05-26 14:37:04 +01:00
Michael Telatynski 20dd2c0b58
tidy code
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-05-26 14:36:25 +01:00
Michael Telatynski 8a4a6b2023
refactor hidden logic to be more resilient against electron weirdness
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-05-26 14:21:38 +01:00
Michael Telatynski ca2533cafa
delint
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-05-26 14:00:45 +01:00
Michael Telatynski d97224e69e
fix really dumb blunder/typo preventing system from going to sleep.
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-09-19 00:53:44 +01:00
Michael Telatynski a6d5158830
electron support for mouse forward/back buttons in Windows
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-03 15:03:50 +01:00
Richard van der Hoff cc56ef3abd Attempt to flush the rageshake logs on close
... so that we get to see what happened in the last 30s.
2017-06-22 18:25:19 +01:00
Michael Telatynski 499b1c2e70 add missing semicolon 2017-06-20 14:05:17 +01:00
Michael Telatynski b6d2ba2019 store window ref globally so when splitting files its easier to access.
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-06-12 13:50:45 +01:00
Michael Telatynski deb7ed660c Merge branch 'develop' of github.com:vector-im/riot-web into t3chguy/updating_stuff 2017-06-11 23:13:49 +01:00
Michael Telatynski 4c8ff0955d move electron update logic into own file, tidy tidy tidy
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-06-11 16:44:36 +01:00
Michael Telatynski f24c6de245
provide react devtools in electron dev builds
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-06-04 15:30:44 +01:00
Michael Telatynski efc68c078e basic manual update stuff + update check bar
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-06-03 15:59:12 +01:00
Matthew Hodgson 21cf79bc54 Merge pull request #4030 from vector-im/t3chguy/electron_profiles
basic electron profile support
2017-06-01 01:33:01 +01:00
Michael Telatynski 5762323bd1 Merge branch 'develop' into t3chguy/electron_profiles 2017-06-01 00:01:53 +01:00
Michael Telatynski 33ee42f821 use loudNotification for flashFrame, resetting on count=0 or focus
win32 check is optional just there so we're not attaching pointless handlers

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-06-01 00:00:00 +01:00
Michael Telatynski 53b7b6cb14 Merge branch 't3chguy/electron_settings' of github.com:vector-im/riot-web into t3chguy/electron_settings 2017-05-30 12:34:05 +01:00
Michael Telatynski c54e2a30b6 explicitly hide because setApplicationMenu on Linux otherwise shows...
https://github.com/electron/electron/issues/9621

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-05-30 12:33:32 +01:00
Michael Telatynski db602f2bc0 Merge branch 'develop' into t3chguy/electron_profiles 2017-05-30 11:00:51 +01:00
Michael Telatynski b27600adbe Improve for Mac - Tested on 10.10.5 2017-05-30 10:53:01 +01:00
Michael Telatynski 9c25aab509 Fix bad merge (3993 before 4021 broke things)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-05-29 22:12:36 +01:00
Michael Telatynski 1d2bd68200 Merge branch 'develop' of github.com:vector-im/riot-web into t3chguy/electron_settings 2017-05-29 22:12:06 +01:00
Matthew Hodgson ff5adeff2c Merge branch 'develop' into t3chguy/tidy_electron_files 2017-05-26 18:50:48 +01:00
Matthew Hodgson 445a55c7ca Merge pull request #3992 from vector-im/t3chguy/electron_call_sleep
Prevent Power Save when in call (Electron)
2017-05-26 18:44:53 +01:00
Michael Telatynski e63baf62c4 quit -> exit as screen is not accessible in alt instance
when using makeSingleInstance
which leads to a weird error
Unhandled exception { Error: Cannot find module '../screen'

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-05-26 09:49:23 +01:00
Michael Telatynski 0fb6a305a3 uber basic multi-profile support for electron app
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-05-26 09:48:32 +01:00
Michael Telatynski c4c78c9b3e split webContents context handling into own file, as main was growing
add handlers for editable fields, with Cut Copy Paste Undo Redo etc
add Copy Image feature to all images, working on not only the download
buttons now

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-05-25 12:42:53 +01:00
Michael Telatynski a98792b05e auto-launch support, ux =checkbox in UserSettings[Electron]
settings are sorta generic, probably reusable for proxy settings

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-05-24 15:52:08 +01:00
Michael Telatynski 8994c2bad1 missed a concat :)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-05-22 19:28:01 +01:00
Michael Telatynski 4bb054c955 electron stuff isn't actually using flow, so don't enable it
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-05-22 19:25:18 +01:00
Michael Telatynski 911c3bcf6e tidy electron files, they were starting to annoy me
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-05-22 19:21:52 +01:00
Michael Telatynski 4944bfdaa2 onAction support in Electron process, disable powersave when in call
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-05-22 18:32:39 +01:00
David Baker a9b5282ba3 Merge pull request #3909 from vector-im/t3chguy/favicon_improvements
Electron Tray Improvements
2017-05-19 16:22:11 +01:00
David Baker dfb30e91de Desktop: 'copy link address'
Add 'copy link address' to link context menu in electron app
2017-05-18 11:32:10 +01:00
Michael Telatynski 9352e5d78e Lets make it abundantly clear that we want attention. FLASH FLASH FLASH
also improve favicon updating to not change if we're same as previous
not sure how intensive the nativeImage stuff is but cheap efficiency

For FLASH FLASH I moved the setBadgeCount stuff RPC -> IPC
should be more reliable now, its in electron-main
Win only:
if mainWindow is set and is not in focus make it FLASH
clear flash if notification gets cleared elsewhere
debounce focus handler so we don't set a million of them
if the app is backgrounded a while

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-05-17 10:39:43 +01:00
Michael Telatynski c607b1bc89 npm is "smart" enough to try and install our electron wrapper as a module
instead of the actual electron package. With no way to ignore directories.
I'd like to think of this as temporary, until I get to rip apart riot-web
and riot-electron

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-05-10 13:36:27 +01:00