J. Ryan Stinnett
09c2d899ac
Defer IM token until widget is shown and permission granted
...
This defers the work to request the IM token when displaying a widget until
after we know that widget will actually be shown and the user has granted
permission for this widget to be displayed.
This is useful in general to avoid making unnecessary token checks, but it's
particularly helpful with the new Terms API, so that we only show the Terms flow
when widget are actually being used (as opposed to entering the room where
widgets exist, but haven't been shown / permitted).
Part of https://github.com/vector-im/riot-web/issues/10088
2019-07-22 11:50:54 +01:00
David Baker
d4af8d4993
Use showIntegrationsManager in other places
2019-07-09 18:56:39 +01:00
Travis Ralston
8f6e8c1ec7
Appease the linter
2019-06-17 15:51:14 -06:00
Travis Ralston
d2d0cb2e9e
Port AppTile (widgets) over to new integration manager dialog props
2019-06-17 15:34:30 -06:00
Travis Ralston
51750cf153
General cleanup of handling for WidgetMessaging instances
...
When setting, delete the old one. Because delete checks if it exists first, we can safely call this.
The change in FromWidgetPostMessageApi is just something noticed while debugging.
2019-04-01 19:50:05 -06:00
David Baker
1fe830d1c6
Remove noreferrer on widget pop-out
...
Having the referrer allows widgets to do customisation based on what
riot instance is embedding it. It gets a referrer when we embed it
in the iframe so there's nothing gained by suppressing it here.
2019-03-27 13:27:57 +00:00
Travis Ralston
ddcb7a68bd
Merge pull request #2781 from matrix-org/travis/openid-widget
...
Widget OpenID reauth implementation
2019-03-27 03:42:39 -06:00
Travis Ralston
a8ae63bb06
Minimize stickerpicker when the title is clicked
...
Fixes https://github.com/vector-im/riot-web/issues/6437
This also fixes a bug where if the room had apps open and you clicked the sticker picker's title, you'd end up closing the apps and not the picker.
2019-03-23 23:50:06 -06:00
Travis Ralston
3654c895eb
Appease the linter
2019-03-23 23:31:19 -06:00
Travis Ralston
2dcb40f1be
Track OpenID automatic permissions by (widgetLocation, widgetUrl)
2019-03-23 23:25:31 -06:00
Travis Ralston
b68960ad26
Reload widget messaging when widgets reload
...
Fixes a bug for some widgets where they cannot do their startup routine (capabilities negotiation, etc) when someone maximizes the widget. By reloading the widget messaging, we ensure the widget is kept in the loop.
2019-03-15 22:24:27 -06:00
Jason Robinson
02ff1763a2
Ensure scalar_token is valid before opening integrations manager
...
Since Scalar (and other integration managers) are loaded as apps into
an iframe, a valid `scalar_token` must exist when loading the app.
It is possible that a scalar_token becomes invalid between the time
when the integration manager button was rendered and the user clicking
the link. Here we make a call to integration manager `/account`
before trying to render the integration manager, which ensures we
have a valid token for the integration manager to work with.
Moving the scalar token revalidation to the cases where it is actually
needed could make it possible to decrease the amount of Scalar /account
calls we do when switching rooms, which is currently 3.
Signed-off-by: Jason Robinson <jasonr@matrix.org>
2019-03-13 11:47:00 +02:00
Bruno Windels
f189ff54a8
hide delete & cancel button on stickers are they weren't visible before
2019-02-12 17:01:05 +01:00
Bruno Windels
6d2e582083
fix lint
2019-02-02 07:46:52 +01:00
Bruno Windels
e2ce12f5c1
wip
2019-02-01 23:15:14 +01:00
J. Ryan Stinnett
20e296b20e
Convert image URLs in React to require
calls
...
This allows Webpack to insert the proper image URL after builds steps like
adding a hash and so on. The path you supply to `require` is relative to the JS
source file, just like any other would be.
2019-01-17 22:06:49 -06:00
David Baker
1ca91370f3
Merge pull request #2372 from matrix-org/dbkr/electron_sandbox
...
React-sdk changes to support sandboxed electron
2018-12-19 09:48:05 +00:00
David Baker
3a8b9ab850
unused import
2018-12-18 17:57:23 +00:00
David Baker
37b3644fd9
React-sdk changes to support sandboxed electron
2018-12-18 17:40:30 +00:00
Willem Mulder
d304c35b38
Allow widgets to autoplay media
...
This is useful for e.g. webcam streams in widgets.
Signed-off-by: Willem Mulder <willemmaster@hotmail.com>
2018-12-18 00:43:37 +00:00
Travis Ralston
aaeb6e4978
Use about:blank instead
2018-10-25 15:59:42 -06:00
Travis Ralston
7ef08314b8
Redirect widgets to another location before deleting them
...
This is so that shutdown hooks in the widget can correctly fire, such as Jitsi's hook to abandon its hold on the webcam.
Fixes https://github.com/vector-im/riot-web/issues/7351
2018-10-19 16:23:19 -06:00
Travis Ralston
c75beb0196
Revert "Redirect widgets to another location before deleting them"
...
This reverts commit 275d88dd4f
.
2018-10-19 16:22:48 -06:00
Travis Ralston
275d88dd4f
Redirect widgets to another location before deleting them
...
This is so that shutdown hooks in the widget can correctly fire, such as Jitsi's hook to abandon its hold on the webcam.
Fixes https://github.com/vector-im/riot-web/issues/7351
2018-10-19 16:22:20 -06:00
David Baker
e3643bd74c
Lint
2018-08-17 09:42:23 +01:00
David Baker
7875d37c8e
Destroy non-persistent widgets when switching room
2018-08-01 15:01:11 +01:00
David Baker
7044410a13
Move destroyPersistentWidget to store
2018-07-24 16:50:34 +01:00
David Baker
6804647dda
Destroy widget when its permission is revoked
2018-07-23 17:11:53 +01:00
David Baker
4f8ece53b2
Fix CSS naming
2018-07-23 15:58:07 +01:00
David Baker
5adcd673ab
Fix persisent apps being the wrong size
2018-07-23 15:08:17 +01:00
David Baker
00f78822c5
Fix widgets resetting when going to the top-left
...
Remove the hash from the parentUrl because this change when we
change rooms.
2018-07-23 13:50:16 +01:00
Bruno Windels
6f278ceab0
Merge pull request #2071 from matrix-org/dbkr/persistedelement_border
...
Fix border around persisted widgets
2018-07-20 12:23:02 +01:00
David Baker
f868cd6699
Fix border around persisted widgets
...
The PersistedElement had zero height so the border ended up in the
wrong place. Add a wrapper to fix the height back.
Fixes https://github.com/vector-im/riot-web/issues/7030
Fixes https://github.com/vector-im/riot-web/issues/7029
2018-07-18 11:52:57 +01:00
David Baker
7aab6fa6f1
Merge remote-tracking branch 'origin/develop' into dbkr/widget_echo
2018-07-18 09:35:57 +01:00
David Baker
4c6419a3c5
Merge remote-tracking branch 'origin/develop' into dbkr/widget_echo
2018-07-16 13:24:13 +01:00
David Baker
e56feea9ec
Put always-on-screen widgets in top left
...
always-on-screen widgets now appear in the top-left where the
call preview normally is if you're not in the room that they're in.
Fixes https://github.com/vector-im/riot-web/issues/7007
Based off https://github.com/matrix-org/matrix-react-sdk/pull/2053
2018-07-12 18:43:49 +01:00
David Baker
8f10ee01c6
Implement always-on-screen capability for widgets
...
As per https://github.com/matrix-org/matrix-doc/issues/1354
This is whitelisted to only jitsi widgets for now as per comment,
mostly because any widget that we may make always-on-screen we need
to preemptively put in a PersistedElement container, which is
unnecessary for any other widget.
Apologies that this does a bunch of refactoring which could have
been split out separately: I only discovered what needed to be
refactored in the process of doing this.
Fixes https://github.com/vector-im/riot-web/issues/6984
2018-07-11 18:07:32 +01:00
David Baker
c665ab8a22
Add error dialog if widget remove fails
...
Also up the timeout because matrix.org is that slow
2018-07-03 11:55:41 +01:00
David Baker
c780cd05a8
Change argument order of setRoomWidget
...
So when deleting a widget we can just omit the ones we don't need
2018-06-26 16:33:28 +01:00
David Baker
a88297d7a6
More code reuse
2018-06-26 16:27:17 +01:00
David Baker
6cf11a15e6
Move WidgetUtils to utils dir
2018-06-26 11:59:16 +01:00
David Baker
94125fb566
Fix widgets re-appearing after being deleted
...
Widgets would sometimes briefly re-appear after having been deleted.
This was because of the following race:
* User presses delete, send POST req, we set `deleting`. Widget hides.
* POST request completes, we unset `deleting` so widget unhides.
* State event comes down sync so widget hides again.
This fixes this by introducing `waitForRoomWidget` and using it to
wait until the state event comes down the sync until clearing the
`deleting` flag.
Since we now have `waitForRoomWidget`, this also uses it when adding
a widget so the 'widget saved' appears at the same time the widget
does.
2018-06-13 15:50:19 +01:00
Travis Ralston
254e8c358a
Remove unused imports
...
Signed-off-by: Travis Ralston <travpc@gmail.com>
2018-05-28 11:38:09 -06:00
Travis Ralston
98613748b6
Move Scalar Widget URL check to WidgetUtils
...
Signed-off-by: Travis Ralston <travpc@gmail.com>
2018-05-27 11:12:55 -06:00
Richard Lewis
b2c26e6984
Merge pull request #1920 from matrix-org/rxl881/refreshWidget
...
Add a "reload widget" button.
2018-05-24 18:11:22 +01:00
Richard Lewis
9753ee8d82
Better check of jitsi widget message origin.
2018-05-24 16:14:18 +01:00
Richard Lewis
a13d58f6c2
More thorough check of IM URL validity.
2018-05-24 14:58:59 +01:00
Richard Lewis
6df3371c6c
Add a "reload widget" button.
2018-05-22 19:14:54 +01:00
Luke Barnard
49a3770e92
Merge branch 'release-v0.12.4' into develop
2018-05-14 14:31:18 +01:00
Luke Barnard
cf8077e605
Set loading: false when iFrame finishes loading
2018-05-14 11:42:38 +01:00
Luke Barnard
6345e474f5
Remove unused conditional
2018-05-14 11:38:17 +01:00
Travis Ralston
9e11720191
Add setting to enable widget screenshots (if widgets declare support)
...
Fixes the remainder of https://github.com/vector-im/riot-web/issues/6708
Signed-off-by: Travis Ralston <travpc@gmail.com>
2018-05-12 14:30:59 -06:00
Luke Barnard
9c5c5e282b
Send visibility only when changed, and messaging is available
2018-05-11 18:20:23 +01:00
Luke Barnard
a419056040
Delinting
2018-05-11 18:20:14 +01:00
Luke Barnard
06919e22d6
When stickerpicker made visible, send visibility over postMessage
2018-05-11 18:20:00 +01:00
Luke Barnard
bd0301c666
Add API to send visibiliy actions to widgets
2018-05-11 18:17:55 +01:00
Luke Barnard
06898394eb
Send visibility only when changed, and messaging is available
2018-05-11 18:06:58 +01:00
Luke Barnard
1f2f3474ed
Delinting
2018-05-11 17:28:12 +01:00
Luke Barnard
8b049b2182
When stickerpicker made visible, send visibility over postMessage
2018-05-11 16:51:03 +01:00
Luke Barnard
4b6378a80d
Add API to send visibiliy actions to widgets
2018-05-11 16:22:54 +01:00
Luke Barnard
770e2d400e
Improve appearance of short-lived app loading spinner
...
by hiding it for 500ms - thereby only showing it if the loading is
taking a long time.
2018-05-09 17:28:41 +01:00
Luke Barnard
97b9316ec7
Fix issue incorrect positioning with widget loading indicator
...
by making sure to apply the correct CSS class to the parent
2018-05-09 17:28:18 +01:00
Luke Barnard
0c1846630c
Improve appearance of short-lived app loading spinner
...
by hiding it for 500ms - thereby only showing it if the loading is
taking a long time.
2018-05-09 16:54:01 +01:00
Luke Barnard
bcf003757c
Merge pull request #1884 from matrix-org/luke/fix-glitchy-widget-spinner
...
Fix issue incorrect positioning with widget loading indicator
2018-05-09 16:52:11 +01:00
Luke Barnard
59cbaf67bb
Fix issue incorrect positioning with widget loading indicator
...
by making sure to apply the correct CSS class to the parent
2018-05-09 15:48:53 +01:00
Richard Lewis
8e1ba6d139
Always allow users to edit their user widgets.
2018-05-08 22:44:49 +01:00
Richard Lewis
b2d6dd8f6e
Optionally hide widget popout button.
2018-04-25 16:28:27 +01:00
Richard Lewis
0f0e89d394
Add a button to 'pop out' widgets in to their own tab.
2018-04-25 12:49:30 +01:00
Richard Lewis
a41384a994
Fix function binding.
2018-04-04 23:45:47 +01:00
Richard Lewis
aefccb134c
Ensure deleting is set to false.
2018-03-29 16:56:25 +01:00
Richard Lewis
4ac9653ab9
Refactor widget postMessage API.
2018-03-28 12:22:06 +01:00
Richard Lewis
4d8f5072f7
Allow react performance profiling on widget iframes.
2018-03-16 10:20:14 +00:00
Richard Lewis
66ea78de65
Clean up whitelisted permission addition / logging.
2018-03-13 11:59:15 +00:00
Richard Lewis
8b311c706c
Null guard widget listener
2018-03-13 11:58:47 +00:00
Richard Lewis
f820374f9f
Logging.
2018-03-13 11:01:51 +00:00
Richard Lewis
de33294000
Center loading spinner.
2018-03-13 10:07:49 +00:00
Richard Lewis
b2d23b6999
Switch to 'm.sticker' message events. Allow whitelisting of wisget capabilities.
2018-03-12 13:56:02 +00:00
Richard Lewis
fdec4b36c9
Hide padding if last control.
2018-03-08 17:25:28 +00:00
Richard Lewis
3ab8b1f866
Hide sticker picker delete button and show minimise button.
2018-03-08 17:20:42 +00:00
Richard Lewis
2b0790b32b
Fix PropTypes.
2018-02-25 22:36:59 +00:00
Richard Lewis
b2bf4d4709
Merge branch 'develop' of https://github.com/matrix-org/matrix-react-sdk into rxl881/snapshot
2018-02-23 15:37:33 +00:00
Richard Lewis
d755b8284c
Remove logging and cleanup.
2018-02-23 15:22:56 +00:00
Richard Lewis
13bebd69c9
Made comment "react-style".
2018-02-21 23:35:57 +00:00
Richard Lewis
ecde099146
Fix typo.
2018-02-21 23:24:53 +00:00
Richard Lewis
7e8660cd37
Add comment for "is" attribute.
2018-02-21 23:23:44 +00:00
Richard Lewis
ffb524b6a5
Allow widget iframes to request camera and microphone permissions.
2018-02-21 23:10:08 +00:00
Richard Lewis
9e3c1fbc7a
Pass room name.
2018-02-09 11:44:27 +00:00
Richard Lewis
5e30468a00
Linting
2018-02-07 14:48:43 +00:00
Richard Lewis
7b75dbbd15
Use default AppTile menu bar.
2018-02-07 14:44:01 +00:00
Richard Lewis
23bef68a8f
Fix duplicate message listeners
2018-01-18 13:16:06 +00:00
Richard Lewis
1293c53c4b
Cleanup
2018-01-18 12:02:45 +00:00
Richard Lewis
3331c8af27
Use dispatcher ref for unregister call.
2018-01-17 15:40:04 +00:00
Richard Lewis
5e6da4d758
* Fix key error
...
* Remove redundant logging
* Catch error
2018-01-15 14:22:41 +00:00
Richard Lewis
1ab71f6f50
Load stickers in AppTile
2018-01-11 13:20:58 +00:00
Richard Lewis
4f3670941d
Bind functions
2018-01-11 12:33:02 +00:00
Richard Lewis
d0c16fa7a1
Convert to ES6 class.
2018-01-11 11:49:46 +00:00
Richard Lewis
0577316c86
Fix duplicate event registration.
2018-01-08 13:40:33 +00:00
Richard Lewis
dc1423052f
De-register listener.
2018-01-08 11:32:23 +00:00
Richard Lewis
54d128658e
Comment logging.
2018-01-04 23:00:10 +00:00
Richard Lewis
d20aebfbd7
Correctly handle sticker message events.
2018-01-04 18:58:55 +00:00