Commit Graph

220 Commits

Author SHA1 Message Date
Matthew Hodgson c3477a30a7 oops, rebuild modernizr to pull in new tests 2017-05-15 01:22:32 +01:00
Matthew Hodgson 8e2e6cee35 require indexeddb & webworkers in modernizr 2017-05-15 01:07:25 +01:00
Michael Telatynski bbda658b7f make Electron tray icon mimic the Favico.js one
DRY: moved Favicon stuff into the base platform

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-05-13 12:37:13 +01:00
Luke Barnard 0e0918d07c Merge pull request #3888 from vector-im/pr/3799
move manifest.json outward so it is scoped properly
2017-05-11 13:20:33 +01:00
Michael Telatynski 3c5594e034 move manifest.json outward so it is scoped properly
this will matter more when we add a service worker

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-05-11 13:12:26 +01:00
David Baker 6013a3e71d Merge pull request #3683 from t3chguy/t3chguy/electron_version_inconsistency
Remove leading v in /version file, for SemVer and to match Electron ver
2017-05-05 18:28:16 +01:00
Richard van der Hoff 45efdbdd43 Include MXID and device id in rageshakes
- to make for easier triage
2017-05-04 17:21:16 +01:00
Michael Telatynski 6367344181 tidy and fix flow notation
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-05-02 21:32:34 +01:00
Michael Telatynski b3c9229aee DRY code and change double quotes to single
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-23 09:59:00 +01:00
Michael Telatynski 2139fb74bb change show logic to same as that of the tray icon
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-23 09:56:43 +01:00
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