Commit Graph

260 Commits

Author SHA1 Message Date
Matthew Hodgson 4864716abb Merge pull request #3564 from t3chguy/t3chguy/malformed-notifications-gnome-kde
Escape HTML Tags from Linux Notifications (electron)
2017-04-22 16:45:04 +01:00
Michael Telatynski 0da6ca8aea add more comment to explain this weirdness
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-22 16:05:08 +01:00
Matthew Hodgson 38fa9f78f1 prefix localstorage key as per the convention 2017-04-22 02:17:22 +01:00
turt2live e877ad2e63 Remember acceptance for unsupported browsers.
Addresses #3624.

This stores the flag in localStorage, after checking if localStorage is available. If localStorage is not available, the user will be prompted just like before this commit.

Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-04-21 16:08:49 -06:00
Richard van der Hoff ccc33db9dd Compress uploaded rageshakes. (#3647) 2017-04-18 17:23:34 +01:00
Richard van der Hoff d8bf57edc5 Add progress reporting to rageshake submission 2017-04-18 16:51:35 +01:00
Richard van der Hoff a34b5abc82 Use multipart-form encoding for rageshake uploads (#3646)
This is a more sensible encoding for uploading logfiles, and will allow us to
compress the logfiles in future.

browser-request doesn't give us enough flexibility to do this properly, so we
use XMLHttpRequest directly.
2017-04-18 16:47:50 +01:00
Richard van der Hoff 062cf47290 Merge pull request #3645 from vector-im/rav/refactor_rageshake
Factor out rageshake upload to a separate file
2017-04-18 15:54:07 +01:00
Richard van der Hoff 6fd6ea9b8e rageshake: fix race when collecting logs
*apparently* it's possible for your indexeddb transaction to complete in the
background, so that the `oncomplete` handler is never called. Make sure that
the oncomplete handler is set *before* doing the work.
2017-04-18 12:37:26 +01:00
Richard van der Hoff 3f291aae5b Use an opts arg for submit-rageshake 2017-04-12 11:26:53 +01:00
Richard van der Hoff 6423f7ce03 rageshake: factor out submission to a separate file
This will mean we can load it asyncronously in future, if we want.
2017-04-11 18:59:22 +01:00
Richard van der Hoff 4efb2b6750 Rageshake: Factor out `getLogsForReport`
... in preparation for factoring out sending the report
2017-04-11 18:47:55 +01:00
Richard van der Hoff cbfa4dd1ab Get rageshake endpoint from SdkConfig instead of storing in rageshake
- in preparation for factoring out the sending of the rageshake
2017-04-11 18:46:48 +01:00
David Baker 7f6d9a625d Make the clear cache button work on desktop
Implement reload in Platforms to support
https://github.com/matrix-org/matrix-react-sdk/pull/798

Fixes https://github.com/vector-im/riot-web/issues/3597
2017-04-10 17:40:09 +01:00
Richard van der Hoff b8b74402c1 Add 'app' parameter to rageshake report 2017-04-10 15:07:43 +01:00
David Baker ec870039bf Don't use endsWith as it'll break on old node
It's a lodash template though, so use lodash
2017-04-07 14:57:02 +01:00
David Baker b65466bc4f Use dedicated indexeddb worker import 2017-04-07 14:41:41 +01:00
David Baker 515b57ba12 Update for rename of worker 2017-04-07 11:23:14 +01:00
David Baker f187a359e6 Add support for indexeddb sync in webworker 2017-04-06 11:15:14 +01:00
Michael Telatynski 99923b7b8f Escape HTML tags in Notifications (Linux)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-03 20:30:05 +01:00
David Baker a3040e22d3 Rename ReactPerf to Perf
As this makes it work out of the box with react-perf chrome
extension (which doesn't do a whole lot other than save you having
to remember the commands, but is still quite nice).
2017-03-29 10:38:46 +01:00
David Baker 4e6541b404 Merge pull request #3385 from vector-im/luke/fix-screen-after-login
Refactor screen set after login
2017-03-14 13:47:55 +00:00
Luke Barnard 7ff2871ad5 const 2017-03-09 10:04:15 +00:00
Luke Barnard cbc31a6c41 Remove redundant thing 2017-03-09 10:03:23 +00:00
Luke Barnard eddf33a689 Refactor screen set after login 2017-03-08 14:57:13 +00:00
David Baker a8e99109b1 Support InteractiveAuth based registration
Passes in a function to make a register URL rather than just
passing in the URL base
2017-02-24 11:45:28 +00:00
Richard van der Hoff 038f5767f2 Add a comment 2017-02-23 14:37:46 +00:00
Richard van der Hoff e2cec7b69c More aggressive rageshake log culling
Also bump the client-side timeout on the upload from 3 mins to 5 mins, to see
if it helps people on slower connections.
2017-02-23 14:22:03 +00:00
Matthew Hodgson 6a7daaf6c4 remove GA, given it's increasingly useless given Riot/Desktop doesn't use it, plus it obviously has privacy implications. It may get re-added as opt-in in future, so we're not sailing entirely blind on how folks use the app, or we may switch to Piwik etc instead. 2017-02-10 17:21:02 +00:00
David Baker 7850f7e505 Fix badge spam: attempt 2 (#3073) 2017-01-26 12:58:29 +00:00
Richard van der Hoff f29e0bfe6d Revert "Merge pull request #3067 from vector-im/matthew/fix-badge-spam"
This reverts commit f9db7f017d, reversing
changes made to 71b149de76.

This caused `number is not defined`
2017-01-26 12:16:44 +00:00
Matthew Hodgson 9797c2fb4b fix electron too 2017-01-26 00:31:52 +01:00
Matthew Hodgson 972a391296 only recalculate favicon if it changes 2017-01-26 00:28:22 +01:00
Kegan Dougal 0a9f02abcc Glue the dialog to rageshake: honour sendLogs flag. 2017-01-25 16:51:26 +00:00
Kegsay 80c1ec0502 Merge pull request #3000 from vector-im/kegan/rageshake
Implement bug reporting logic
2017-01-25 10:34:05 +00:00
Kegan Dougal eaff0abfb0 Add link to Chrome issue status for fixing line numbers 2017-01-25 10:28:13 +00:00
Kegan Dougal e225d3e370 Preserve ordering of flush()es by not letting subsequent flush()es race 2017-01-24 17:05:01 +00:00
Kegan Dougal 6f3b70dbb0 Use Q promises and isPending to make logic simpler 2017-01-24 12:43:18 +00:00
Kegan Dougal f3df86872b Fix tightlooping when flush()ing without any logs
The promise would resolve immediately, nulling out `flushPromise`. This would
then immediately be set from `new Promise((resolve, reject) => {...})` turning
it back into non-null `flushPromise`. The resolve handler was called so the
next `flush()` would see "oh yes, there is a non-null `flushPromise`" then
promptly try to set `flushAgainPromise` which chains off the resolved
`flushPromise` which relied on `flushPromise` being `null`ed out after
`resolve()`, causing the chained `flush()` to see "oh yes, there is a non-null
`flushPromise`" which... ad infinitum.

This PR fixes it by making the nulling out asynchronous but the fact it took
me this long to debug this issue indicates to me that this is a terrible piece
of code. Will re-write.
2017-01-23 17:37:57 +00:00
Kegan Dougal 2ecf65f057 Keep the logs if no store exists 2017-01-23 09:28:48 +00:00
Kegan Dougal ea063ab8b0 Address race conditions when flushing logs 2017-01-20 14:46:19 +00:00
Kegan Dougal 378126e746 Add another store to keep last modified times
This makes it easier to get a list of all the log IDs. It also makes it possible
to order the logs by the *LAST* log line and not the first as was the case
previously, which is important in the case of long-running tabs.
2017-01-20 14:00:30 +00:00
Kegan Dougal 41c6294be2 Remove clearAll from consume(): we want duplicate logs on multiple reports 2017-01-20 13:02:57 +00:00
Kegan Dougal ba1e166ac8 Line length 80 like we're still in the 80s 2017-01-20 12:02:48 +00:00
Kegan Dougal ea860807c4 Add a monkeyPatch function rather than monkey-patching in the constructor 2017-01-20 11:56:11 +00:00
Kegan Dougal 53a16158c7 Remove logs when submitting bug reports 2017-01-19 17:41:08 +00:00
Kegan Dougal beba4d2ae3 Add version and user agent to bug report 2017-01-19 17:40:21 +00:00
Kegan Dougal 3996d23b19 Inject bug report endpoint URL from config.json 2017-01-19 16:49:25 +00:00
Kegan Dougal bf887e82fe Swap to async/await rather than promise chains
Since we do in fact support coroutines!
2017-01-19 16:40:54 +00:00
Kegan Dougal 81d437ac1e POST reports to localhost for now. Also send live console logs 2017-01-19 15:47:55 +00:00
Richard van der Hoff 61c5253dbf Give the 'Light' theme link a title too
... mostly to make it appear on the Firefox style menu.
2017-01-19 15:41:58 +00:00
Kegan Dougal 608c1b0208 Finish implementing consume()
- Fetches all logs in order and concatenates correctly.
- Purges old logs correctly.
2017-01-19 15:03:47 +00:00
David Baker bee4ca2b28 Fixes to electron desktop notifs
Merge the notification part of https://github.com/vector-im/riot-web/pull/2960

 * Show and focus the window when the notification is clicked,
   rather than just restoring it.
 * Implement requestNotificationPermission and return a resolved
   promise (although in practice it should never be called)
2017-01-19 13:25:56 +00:00
Kegan Dougal 89d514a532 Query IndexedDB for all results with index=0 2017-01-19 12:02:19 +00:00
Kegan Dougal 811086ac8e Comment how we should consume logs 2017-01-18 17:18:02 +00:00
Kegan Dougal 5828ab1077 Generate unique IDs for each JS runtime to accomodate multiple tabs 2017-01-18 16:27:11 +00:00
Matthew Hodgson acb85b7b72 f1x0r CSS comment 2017-01-18 16:06:02 +00:00
Kegan Dougal e9884768f6 Persist console logs to an IndexedDB instance 2017-01-18 16:00:13 +00:00
Matthew Hodgson 708fd640f7 unbreak switching after vdh's webpack changes 2017-01-18 14:06:20 +00:00
Matthew Hodgson 6c88201e23 use ye olde rel='alternate stylesheets' for theming 2017-01-17 19:14:16 +00:00
Matthew Hodgson 8b38a326cb merge package.json 2017-01-16 00:20:18 +00:00
David Baker c5459a2f19 Enable screen sharing easter-egg in desktop app 2017-01-10 18:39:21 +00:00
Matthew Hodgson 691fe611d6 experimental postcss 2017-01-10 11:06:09 +00:00
Matthew Hodgson c6beaa1631 initial stab at an official dark theme via the magic of SASS.
SVGs are all broken, and some of the more exotic colours haven't been updated. There's been no attempt to use SASS to remove duplication from the CSS yet.
no attempt to switch it at runtime yet.
2016-12-28 04:06:10 +00:00
Matthew Hodgson bacb284415 basic jig for SASS-based themed CSS (one bundle per theme) 2016-12-28 02:01:28 +00:00
Matthew Hodgson 9a861f46d0 make electron send email validation URLs with a nextlink of riot.im rather than file:/// 2016-12-24 03:18:12 +00:00
Richard van der Hoff 8be72e6c27 Configure olm memory size
16M is somewhat excessive: configure olm to use a bit less.

Requires changes to the olm library to do anything useful, but will be harmless
without them.

Partial fix to vector-im/riot-web#2726.
2016-12-14 11:59:37 +00:00
Hubert Chathi ad79f67ab6 Add missing brackets to call to toUpperCase 2016-12-06 22:36:42 -05:00
David Baker 5fa0f62ccc Fix clicking on notifications
* Dismiss the notification when it's clicked
 * Accept the room object: we need it to view_room
 * Desktop app: Un-minimise when notification clicked
 * Desktop App: Set App User Model ID so notifications work on
   Windows 8!
2016-12-06 13:28:59 +00:00
David Baker c786980454 Move getDefaultDeviceName into the Platforms
So we can have a sensible device name on Electron
2016-11-24 16:46:15 +00:00
Richard van der Hoff 8b0390f354 Fix a race which took us to the directory on load sometimes (#2602)
Sometimes window.onload would run before loadApp had finished (specifically, if
the browser had to wait for config.json to load). Avoid the race by moving all
of the onload logic into loadApp.
2016-11-18 17:32:01 +00:00
Richard van der Hoff 646608bf8b Add a cachebuster to /version 2016-11-17 17:31:31 +00:00
David Baker 8d46077ac2 Support for get_app_version 2016-11-08 10:47:01 +00:00
David Baker 9a00ec128c many semicolons 2016-11-04 10:46:51 +00:00
David Baker ed9c29d365 Use require so we can import conditionally 2016-11-03 15:45:12 +00:00
David Baker 6869c679ef Merge remote-tracking branch 'origin/develop' into dbkr/electron_3 2016-11-03 14:58:12 +00:00
David Baker cfe63fa274 Better support no-config when loading from file
We should still error if given a 5xx with an empty body.
2016-11-03 14:43:10 +00:00
David Baker 3601b44429 Fix loading with no config from HTTP 2016-11-03 14:17:23 +00:00
David Baker fb3ca441ba Merge remote-tracking branch 'origin/develop' into dbkr/electron_3 2016-11-03 13:32:01 +00:00
David Baker f1b72dfa09 Fix copyright 2016-11-03 11:51:41 +00:00
David Baker 4d0b492ba0 Merge remote-tracking branch 'origin/develop' into dbkr/platform_version 2016-11-03 11:51:23 +00:00
David Baker 3bcb447e03 Fix copyright 2016-11-03 11:48:49 +00:00
David Baker 275a55266b Merge remote-tracking branch 'origin/develop' into dbkr/electron_3 2016-11-02 19:46:02 +00:00
David Baker 18504ca14e Merge pull request #2533 from vector-im/dbkr/platform_notification
Add Notification support to the Web Platform
2016-11-02 19:43:17 +00:00
David Baker 6aba9f8eda Don't always claim we have notif support
Only if the browser has the Notification API
2016-11-02 19:26:07 +00:00
David Baker caa3cb7d89 Electron support
From https://github.com/vector-im/vector-web/pull/2511 but with
just the actual electron changes
2016-11-02 18:49:28 +00:00
David Baker 19238b9326 Use the defaults if given a blank config file
This allows Vector to load from file:// URIs without breaking if
there is no config file (because we explicitly look for 404s, and
file:// URIs don't return 404s).
2016-11-02 17:57:27 +00:00
David Baker 17bb47676e Make VectorBasePlatform
For template methods that are only used from within vector (ie. new version
support)
2016-11-02 17:45:35 +00:00
David Baker 757604fd60 Add Notification support to the Web Platform
Except display notification which was already accidentally included in a
previous PR
2016-11-02 17:36:48 +00:00
David Baker 64fdb290eb Move 'new version' support into Platform 2016-11-02 16:02:55 +00:00
David Baker a714edbf2b Implement Platforms
Provide WebPlatform for functionality specific to the web version of vector.
2016-11-02 15:12:51 +00:00
Richard van der Hoff 6396c60645 Put a cachebuster in the names of CSS and JS files
This means that clients can do better caching of assets, as it will mean we are
no longer reliant on etags to ensure that clients get a fresh version.

We inhibit the cachebuster for `npm start`, so that we don't get millions of
copies of the bundles on dev boxes.
2016-10-26 15:20:59 +01:00
Richard van der Hoff 8fe05fdff3 Correct path to components.css
Fix failure to find components.css which was introduced in e1919c5
(https://github.com/vector-im/vector-web/pull/2513)
2016-10-26 15:02:34 +01:00
Richard van der Hoff e1919c5ea3 Don't include two copies of the CSS in the tarball
Aggregate our CSS into build/components.css instead of vector/components.css, so
that it isn't included in the tarball.
2016-10-26 14:43:42 +01:00
David Baker d04201d069 Replace stage & es2017 with specific plugins
Also sort out regenerator runtime as it turns out importing
babel-polyfill in your code is insufficient if using webpack
because it's imported too late, so use both that and
regenerator-runtime. Sigh.
2016-10-17 16:28:14 +01:00
David Baker 82de2ca4ec Remove transform-runtime
We use instance methods (or at least, draft.js does) so we need
babel-polyfill instead.
2016-10-17 16:28:14 +01:00
David Baker 5608e97719 Remove babel-polyfill
Should be no need for it if we're using transform-runtime (and
we definitely don't need it twice...)
2016-10-17 16:28:13 +01:00
David Baker ea09a25563 Revert "Switch to babel 6" 2016-10-14 18:50:22 +01:00
David Baker 40ac80a3e9 Replace stage & es2017 with specific plugins
Also sort out regenerator runtime as it turns out importing
babel-polyfill in your code is insufficient if using webpack
because it's imported too late, so use both that and
regenerator-runtime. Sigh.
2016-10-14 18:03:22 +01:00
David Baker 5f747e1a90 Remove transform-runtime
We use instance methods (or at least, draft.js does) so we need
babel-polyfill instead.
2016-10-13 10:57:10 +01:00
David Baker 64815b1b0b Remove babel-polyfill
Should be no need for it if we're using transform-runtime (and
we definitely don't need it twice...)
2016-10-12 17:23:01 +01:00
David Baker 8e4dcd9b41 Rebrand 2016-09-19 13:29:49 +01:00
Richard van der Hoff 17733a66f9 rename MatrixChat defaultDeviceDisplayName prop 2016-08-12 11:40:25 +01:00
Richard van der Hoff 3a819a29b7 Make up a device display name
Pass a default device name into react-sdk
2016-08-12 11:01:39 +01:00
Richard van der Hoff 9e15bda803 comment typo 2016-08-11 12:49:57 +01:00
David Baker e7ac66ad04 Don't redirect to mobile app if verifying 3pid
Fixes https://github.com/vector-im/vector-web/issues/1933
2016-08-11 12:44:49 +01:00
Richard van der Hoff c2cb4dff4c Support for refactored login token handling
loginToken handling is now done by the session loader, so we need to pass in
the queryparams to MatrixChat.

Also, MatrixChat no longer automatically reloads the page to drop the
querystring, so we have to do that ourselves (doing it in index.js allows
tokenlogin to be tested).
2016-08-11 01:55:51 +01:00
Richard van der Hoff afc889ff4d Some tests of the application load process 2016-08-10 00:15:04 +01:00
Matthew Hodgson 28057fd086 improve upgrade-to-app warning on mobile app 2016-08-01 18:36:08 +01:00
Aviral Dasgupta b2459b2dc6 Merge branch 'develop' of github.com:vector-im/vector-web into feature-rte 2016-06-10 04:43:06 +05:30
Richard van der Hoff 4dd477e064 index.js: fix comment typo
Fix dave's typo for him
2016-06-09 10:38:51 +01:00
David Baker 24602119c5 This doesn't actually need to be global
(because the rendering isn't in a render method here)
2016-06-09 09:59:37 +01:00
David Baker 3040d0a474 Comment typo 2016-06-09 09:57:44 +01:00
David Baker e4ea00ca23 Return here, else we'll call resolve too 2016-06-09 09:56:57 +01:00
David Baker f6aa9a7ea4 Make the config optional
Accept 404 errors from getting the config and start MatrixChat with no config, make other errors display a simple error message to prevent a completely blank page if the config does fail to load.
2016-06-08 18:46:21 +01:00
Richard van der Hoff ed1554f4af index.js: fix wording in android popup 2016-06-07 22:01:56 +01:00
David Baker c6cf5febd5 Merge pull request #1516 from vith/static-config-json
serve config.json statically instead of bundling it
2016-06-06 19:15:35 +01:00
Aviral Dasgupta 7e563b89c7 initial version of rich text editor 2016-05-27 10:17:01 +05:30
Jason Papakostas 6a6118e136 serve config.json statically instead of bundling it
issue #1344
2016-05-24 19:08:09 -05:00
Matthew Hodgson 8a9c85c97d fix wording 2016-05-16 23:00:17 +01:00
Matthew Hodgson 8fb521c83c 302 android to play store 2016-05-13 17:14:01 +01:00
Matthew Hodgson 8467d5d760 302 to iTunes if you don't have the app installed 2016-05-11 01:48:02 +02:00
Richard van der Hoff a0b460b084 Include react-addons-perf for non-production builds
This makes it possible to gather a few performance stats
2016-04-19 15:01:24 +01:00
Richard van der Hoff 035b15f330 Moar debug for ff session restore issue 2016-04-13 22:18:26 +01:00
Richard van der Hoff 77355cbeb4 Add some debug to help with FF restore bug
(https://github.com/vector-im/vector-web/issues/1354)
2016-04-13 21:01:24 +01:00
Richard van der Hoff 090db5490b URI-decode the hash-fragment
It looks like % characters in the hash-fragment are meant to be interpreted as
a URI-encoding, so we should decode them.
2016-03-23 15:58:00 +00:00
Mark Haines 31915db6f6 Remove trailing whitespace 2016-03-15 18:38:24 +00:00
David Baker a063efe250 Remove no-longer accurate comment. 2016-02-23 10:57:50 +00:00
David Baker 45c8500f28 Pass through params for other URLs (in this case, for keypair invite signing urls) 2016-02-23 10:22:22 +00:00
Matthew Hodgson 155728b136 make babel actually do full ES6 emulation for Safari 8 2016-02-10 14:54:55 +00:00
David Baker 1732805f31 Always parse the hash of a URL as we do elsewhere by looking for a query string part, otherwise we end up passing the query into showscreen which then spreads havok. 2016-02-10 13:45:24 +00:00
Kegan Dougal 27791c06ee Cache-bust on /version request 2016-02-05 15:53:33 +00:00
Kegan Dougal b307a6d64e Invoke onVersion when we know the current version even if there is no new version (for settings) 2016-02-03 16:50:05 +00:00
Kegan Dougal 4628cf82a7 Split out response text to its own var to prevent trim() messing up comparisons 2016-02-03 16:23:17 +00:00
Kegan Dougal 5eed734325 Add a version update checker and NewVersionBar to show on the UI. 2016-02-03 16:16:14 +00:00
Matthew Hodgson 68f846e129 Merge branch 'develop' into matthew/roomsettings2 2016-01-13 17:33:32 +00:00
Matthew Hodgson fc3f356dc0 GA 2016-01-12 01:23:39 +00:00
Kegan Dougal 1a8a4728cd Enable guest access. Show r/w icons on room directory. 2016-01-07 14:43:12 +00:00
Matthew Hodgson df111223fc copyrights for 2016 2016-01-07 04:17:56 +00:00
Kegan Dougal 63d0477223 Pass through the starting query params from the URL 2015-12-17 15:01:07 +00:00
David Baker 939733b736 Merge branch 'develop' into require-css 2015-12-02 10:26:26 +00:00
David Baker a63bf7cb35 Merge branch 'develop' into skindex-nextgen 2015-12-01 18:10:57 +00:00
David Baker 7ff5e42f3e Run the CSS through webpack so we can pull in CSS files from modules with require rather than symlinking into the node_module directory which is breaking people on different npm versions. 2015-12-01 18:05:43 +00:00
David Baker c281fe785a Merge branch 'develop' into skindex-nextgen 2015-12-01 15:53:11 +00:00
Kegan Dougal 8083e7f118 Move vector-only components to src/components. 2015-12-01 15:45:38 +00:00
Kegan Dougal 8f5f71ec80 Move MatrixChat to react-sdk. Move all login stuff to react SDK.
Removed Modulator stuff.
2015-11-30 18:10:09 +00:00
David Baker 6f646260aa WIP of component indexing update 2015-11-30 17:31:32 +00:00
Matthew Hodgson 2cae5e7a00 revert bad fix to managing history 2015-11-11 02:31:37 +01:00
Matthew Hodgson 2c9273a86c avoid the initial sync from clobbering the location bar 2015-11-11 02:00:51 +01:00
Matthew Hodgson 87bb7c9b7b upgrade to react 0.14 2015-11-09 23:13:46 +00:00