Commit graph

216 commits

Author SHA1 Message Date
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