Skip to content
This repository has been archived by the owner on Sep 11, 2024. It is now read-only.

Implement MSC3819: Allowing widgets to send/receive to-device messages #8885

Merged
merged 17 commits into from
Aug 10, 2022

Conversation

robintown
Copy link
Member

@robintown robintown commented Jun 23, 2022

matrix-org/matrix-spec-proposals#3819

Depends on:

Notes: Allow widgets to send/receive to-device messages
element-web notes: Allow widgets to send/receive to-device messages


Here's what your changelog entry will look like:

✨ Features

  • Allow widgets to send/receive to-device messages (#8885).

@robintown robintown marked this pull request as ready for review August 5, 2022 15:53
@robintown robintown requested a review from a team as a code owner August 5, 2022 15:53
Copy link
Member

@dbkr dbkr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Otherwise looks great

@@ -182,6 +183,49 @@ export class StopGapWidgetDriver extends WidgetDriver {
return { roomId, eventId: r.event_id };
}

public async sendToDevice(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if this interface should be like the new queueToDevice API (ie. a list of objects) rather than the two-level map, so we just expose the higher level interface to the widgets. It would also save all the flatMap-ing.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The interface here is dictated by the WidgetDriver API from matrix-widget-sdk, which isn't supposed to know about the exact higher-level interfaces of the js-sdk. My reasoning with making it take a two-level map like this was to match the CS API and what's "actually" being sent over the wire

@robintown robintown merged commit 103b60d into matrix-org:develop Aug 10, 2022
su-ex added a commit to SchildiChat/element-desktop that referenced this pull request Sep 1, 2022
* Upgrade to Electron 20 ([\element-hq#403](element-hq#403)).
* Device manager - scroll to filtered list from security recommendations ([\#9227](matrix-org/matrix-react-sdk#9227)). Contributed by @kerryarchibald.
* Device manager - updated dropdown style in filtered device list ([\#9226](matrix-org/matrix-react-sdk#9226)). Contributed by @kerryarchibald.
* Device manager - device type and verification icons on device tile ([\#9197](matrix-org/matrix-react-sdk#9197)). Contributed by @kerryarchibald.
* Ignore unreads in low priority rooms in the space panel ([\#6518](matrix-org/matrix-react-sdk#6518)). Fixes element-hq/element-web#16836.
* Release message right-click context menu out of labs ([\#8613](matrix-org/matrix-react-sdk#8613)).
* Device manager - expandable session details in device list ([\#9188](matrix-org/matrix-react-sdk#9188)). Contributed by @kerryarchibald.
* Device manager - device list filtering ([\#9181](matrix-org/matrix-react-sdk#9181)). Contributed by @kerryarchibald.
* Device manager - add verification details to session details ([\#9187](matrix-org/matrix-react-sdk#9187)). Contributed by @kerryarchibald.
* Device manager - current session expandable details ([\#9185](matrix-org/matrix-react-sdk#9185)). Contributed by @kerryarchibald.
* Device manager - security recommendations section ([\#9179](matrix-org/matrix-react-sdk#9179)). Contributed by @kerryarchibald.
* The Welcome Home Screen: Return Button ([\#9089](matrix-org/matrix-react-sdk#9089)). Fixes element-hq/element-web#22917. Contributed by @justjanne.
* Device manager - label devices as inactive ([\#9175](matrix-org/matrix-react-sdk#9175)). Contributed by @kerryarchibald.
* Device manager - other sessions list ([\#9155](matrix-org/matrix-react-sdk#9155)). Contributed by @kerryarchibald.
* Implement MSC3846: Allowing widgets to access TURN servers ([\#9061](matrix-org/matrix-react-sdk#9061)).
* Allow widgets to send/receive to-device messages ([\#8885](matrix-org/matrix-react-sdk#8885)).
* Add super cool feature ([\#9222](matrix-org/matrix-react-sdk#9222)). Contributed by @gefgu.
* Make use of js-sdk roomNameGenerator to handle i18n for generated room names ([\#9209](matrix-org/matrix-react-sdk#9209)). Fixes element-hq/element-web#21369.
* Fix progress bar regression throughout the app ([\#9219](matrix-org/matrix-react-sdk#9219)). Fixes element-hq/element-web#23121.
* Reuse empty string & space string logic for event types in devtools ([\#9218](matrix-org/matrix-react-sdk#9218)). Fixes element-hq/element-web#23115.
* Reduce amount of requests done by the onboarding task list ([\#9194](matrix-org/matrix-react-sdk#9194)). Fixes element-hq/element-web#23085. Contributed by @justjanne.
* Avoid hardcoding branding in user onboarding ([\#9206](matrix-org/matrix-react-sdk#9206)). Fixes element-hq/element-web#23111. Contributed by @justjanne.
* End jitsi call when member is banned ([\#8879](matrix-org/matrix-react-sdk#8879)). Contributed by @maheichyk.
* Fix context menu being opened when clicking message action bar buttons ([\#9200](matrix-org/matrix-react-sdk#9200)). Fixes element-hq/element-web#22279 and element-hq/element-web#23100.
* Add gap between checkbox and text in report dialog following the same pattern (8px) used in the gap between the two buttons. It fixes element-hq/element-web#23060 ([\#9195](matrix-org/matrix-react-sdk#9195)). Contributed by @gefgu.
* Fix url preview AXE and layout issue & add percy test ([\#9189](matrix-org/matrix-react-sdk#9189)). Fixes element-hq/element-web#23083.
* Wrap long space names ([\#9201](matrix-org/matrix-react-sdk#9201)). Fixes element-hq/element-web#23095.
* Attempt to fix `Failed to execute 'removeChild' on 'Node'` ([\#9196](matrix-org/matrix-react-sdk#9196)).
* Fix soft crash around space hierarchy changing between spaces ([\#9191](matrix-org/matrix-react-sdk#9191)). Fixes matrix-org/element-web-rageshakes#14613.
* Fix soft crash around room view store metrics ([\#9190](matrix-org/matrix-react-sdk#9190)). Fixes matrix-org/element-web-rageshakes#14361.
* Fix the same person appearing multiple times when searching for them. ([\#9177](matrix-org/matrix-react-sdk#9177)). Fixes element-hq/element-web#22851.
* Fix space panel subspace indentation going missing ([\#9167](matrix-org/matrix-react-sdk#9167)). Fixes element-hq/element-web#23049.
* Fix invisible power levels tile when showing hidden events ([\#9162](matrix-org/matrix-react-sdk#9162)). Fixes element-hq/element-web#23013.
* Space panel accessibility improvements ([\#9157](matrix-org/matrix-react-sdk#9157)). Fixes element-hq/element-web#22995.
* Fix inverted logic for showing UserWelcomeTop component ([\#9164](matrix-org/matrix-react-sdk#9164)). Fixes element-hq/element-web#23037.
su-ex added a commit to SchildiChat/element-web that referenced this pull request Sep 1, 2022
* Device manager - scroll to filtered list from security recommendations ([\element-hq#9227](matrix-org/matrix-react-sdk#9227)). Contributed by @kerryarchibald.
* Device manager - updated dropdown style in filtered device list ([\element-hq#9226](matrix-org/matrix-react-sdk#9226)). Contributed by @kerryarchibald.
* Device manager - device type and verification icons on device tile ([\element-hq#9197](matrix-org/matrix-react-sdk#9197)). Contributed by @kerryarchibald.
* Ignore unreads in low priority rooms in the space panel ([\element-hq#6518](matrix-org/matrix-react-sdk#6518)). Fixes element-hq#16836.
* Release message right-click context menu out of labs ([\element-hq#8613](matrix-org/matrix-react-sdk#8613)).
* Device manager - expandable session details in device list ([\element-hq#9188](matrix-org/matrix-react-sdk#9188)). Contributed by @kerryarchibald.
* Device manager - device list filtering ([\element-hq#9181](matrix-org/matrix-react-sdk#9181)). Contributed by @kerryarchibald.
* Device manager - add verification details to session details ([\element-hq#9187](matrix-org/matrix-react-sdk#9187)). Contributed by @kerryarchibald.
* Device manager - current session expandable details ([\element-hq#9185](matrix-org/matrix-react-sdk#9185)). Contributed by @kerryarchibald.
* Device manager - security recommendations section ([\element-hq#9179](matrix-org/matrix-react-sdk#9179)). Contributed by @kerryarchibald.
* The Welcome Home Screen: Return Button ([\element-hq#9089](matrix-org/matrix-react-sdk#9089)). Fixes element-hq#22917. Contributed by @justjanne.
* Device manager - label devices as inactive ([\element-hq#9175](matrix-org/matrix-react-sdk#9175)). Contributed by @kerryarchibald.
* Device manager - other sessions list ([\element-hq#9155](matrix-org/matrix-react-sdk#9155)). Contributed by @kerryarchibald.
* Implement MSC3846: Allowing widgets to access TURN servers ([\element-hq#9061](matrix-org/matrix-react-sdk#9061)).
* Allow widgets to send/receive to-device messages ([\element-hq#8885](matrix-org/matrix-react-sdk#8885)).
* Add super cool feature ([\element-hq#9222](matrix-org/matrix-react-sdk#9222)). Contributed by @gefgu.
* Make use of js-sdk roomNameGenerator to handle i18n for generated room names ([\element-hq#9209](matrix-org/matrix-react-sdk#9209)). Fixes element-hq#21369.
* Fix progress bar regression throughout the app ([\element-hq#9219](matrix-org/matrix-react-sdk#9219)). Fixes element-hq#23121.
* Reuse empty string & space string logic for event types in devtools ([\element-hq#9218](matrix-org/matrix-react-sdk#9218)). Fixes element-hq#23115.
* Reduce amount of requests done by the onboarding task list ([\element-hq#9194](matrix-org/matrix-react-sdk#9194)). Fixes element-hq#23085. Contributed by @justjanne.
* Avoid hardcoding branding in user onboarding ([\#9206](matrix-org/matrix-react-sdk#9206)). Fixes element-hq#23111. Contributed by @justjanne.
* End jitsi call when member is banned ([\element-hq#8879](matrix-org/matrix-react-sdk#8879)). Contributed by @maheichyk.
* Fix context menu being opened when clicking message action bar buttons ([\element-hq#9200](matrix-org/matrix-react-sdk#9200)). Fixes element-hq#22279 and element-hq#23100.
* Add gap between checkbox and text in report dialog following the same pattern (8px) used in the gap between the two buttons. It fixes element-hq#23060 ([\element-hq#9195](matrix-org/matrix-react-sdk#9195)). Contributed by @gefgu.
* Fix url preview AXE and layout issue & add percy test ([\element-hq#9189](matrix-org/matrix-react-sdk#9189)). Fixes element-hq#23083.
* Wrap long space names ([\element-hq#9201](matrix-org/matrix-react-sdk#9201)). Fixes element-hq#23095.
* Attempt to fix `Failed to execute 'removeChild' on 'Node'` ([\element-hq#9196](matrix-org/matrix-react-sdk#9196)).
* Fix soft crash around space hierarchy changing between spaces ([\element-hq#9191](matrix-org/matrix-react-sdk#9191)). Fixes matrix-org/element-web-rageshakes#14613.
* Fix soft crash around room view store metrics ([\element-hq#9190](matrix-org/matrix-react-sdk#9190)). Fixes matrix-org/element-web-rageshakes#14361.
* Fix the same person appearing multiple times when searching for them. ([\element-hq#9177](matrix-org/matrix-react-sdk#9177)). Fixes element-hq#22851.
* Fix space panel subspace indentation going missing ([\element-hq#9167](matrix-org/matrix-react-sdk#9167)). Fixes element-hq#23049.
* Fix invisible power levels tile when showing hidden events ([\element-hq#9162](matrix-org/matrix-react-sdk#9162)). Fixes element-hq#23013.
* Space panel accessibility improvements ([\element-hq#9157](matrix-org/matrix-react-sdk#9157)). Fixes element-hq#22995.
* Fix inverted logic for showing UserWelcomeTop component ([\element-hq#9164](matrix-org/matrix-react-sdk#9164)). Fixes element-hq#23037.
su-ex added a commit to SchildiChat/matrix-react-sdk that referenced this pull request Sep 1, 2022
* Device manager - scroll to filtered list from security recommendations ([\matrix-org#9227](matrix-org#9227)). Contributed by @kerryarchibald.
* Device manager - updated dropdown style in filtered device list ([\matrix-org#9226](matrix-org#9226)). Contributed by @kerryarchibald.
* Device manager - device type and verification icons on device tile ([\matrix-org#9197](matrix-org#9197)). Contributed by @kerryarchibald.
* Ignore unreads in low priority rooms in the space panel ([\matrix-org#6518](matrix-org#6518)). Fixes element-hq/element-web#16836.
* Release message right-click context menu out of labs ([\matrix-org#8613](matrix-org#8613)).
* Device manager - expandable session details in device list ([\matrix-org#9188](matrix-org#9188)). Contributed by @kerryarchibald.
* Device manager - device list filtering ([\matrix-org#9181](matrix-org#9181)). Contributed by @kerryarchibald.
* Device manager - add verification details to session details ([\matrix-org#9187](matrix-org#9187)). Contributed by @kerryarchibald.
* Device manager - current session expandable details ([\matrix-org#9185](matrix-org#9185)). Contributed by @kerryarchibald.
* Device manager - security recommendations section ([\matrix-org#9179](matrix-org#9179)). Contributed by @kerryarchibald.
* The Welcome Home Screen: Return Button ([\matrix-org#9089](matrix-org#9089)). Fixes element-hq/element-web#22917. Contributed by @justjanne.
* Device manager - label devices as inactive ([\matrix-org#9175](matrix-org#9175)). Contributed by @kerryarchibald.
* Device manager - other sessions list ([\matrix-org#9155](matrix-org#9155)). Contributed by @kerryarchibald.
* Implement MSC3846: Allowing widgets to access TURN servers ([\matrix-org#9061](matrix-org#9061)).
* Allow widgets to send/receive to-device messages ([\matrix-org#8885](matrix-org#8885)).
* Add super cool feature ([\matrix-org#9222](matrix-org#9222)). Contributed by @gefgu.
* Make use of js-sdk roomNameGenerator to handle i18n for generated room names ([\matrix-org#9209](matrix-org#9209)). Fixes element-hq/element-web#21369.
* Fix progress bar regression throughout the app ([\matrix-org#9219](matrix-org#9219)). Fixes element-hq/element-web#23121.
* Reuse empty string & space string logic for event types in devtools ([\matrix-org#9218](matrix-org#9218)). Fixes element-hq/element-web#23115.
* Reduce amount of requests done by the onboarding task list ([\matrix-org#9194](matrix-org#9194)). Fixes element-hq/element-web#23085. Contributed by @justjanne.
* Avoid hardcoding branding in user onboarding ([\matrix-org#9206](matrix-org#9206)). Fixes element-hq/element-web#23111. Contributed by @justjanne.
* End jitsi call when member is banned ([\matrix-org#8879](matrix-org#8879)). Contributed by @maheichyk.
* Fix context menu being opened when clicking message action bar buttons ([\matrix-org#9200](matrix-org#9200)). Fixes element-hq/element-web#22279 and element-hq/element-web#23100.
* Add gap between checkbox and text in report dialog following the same pattern (8px) used in the gap between the two buttons. It fixes element-hq/element-web#23060 ([\matrix-org#9195](matrix-org#9195)). Contributed by @gefgu.
* Fix url preview AXE and layout issue & add percy test ([\matrix-org#9189](matrix-org#9189)). Fixes element-hq/element-web#23083.
* Wrap long space names ([\matrix-org#9201](matrix-org#9201)). Fixes element-hq/element-web#23095.
* Attempt to fix `Failed to execute 'removeChild' on 'Node'` ([\matrix-org#9196](matrix-org#9196)).
* Fix soft crash around space hierarchy changing between spaces ([\matrix-org#9191](matrix-org#9191)). Fixes matrix-org/element-web-rageshakes#14613.
* Fix soft crash around room view store metrics ([\matrix-org#9190](matrix-org#9190)). Fixes matrix-org/element-web-rageshakes#14361.
* Fix the same person appearing multiple times when searching for them. ([\matrix-org#9177](matrix-org#9177)). Fixes element-hq/element-web#22851.
* Fix space panel subspace indentation going missing ([\matrix-org#9167](matrix-org#9167)). Fixes element-hq/element-web#23049.
* Fix invisible power levels tile when showing hidden events ([\matrix-org#9162](matrix-org#9162)). Fixes element-hq/element-web#23013.
* Space panel accessibility improvements ([\matrix-org#9157](matrix-org#9157)). Fixes element-hq/element-web#22995.
* Fix inverted logic for showing UserWelcomeTop component ([\matrix-org#9164](matrix-org#9164)). Fixes element-hq/element-web#23037.
estellecomment added a commit to tchapgouv/tchap-web-v4 that referenced this pull request Sep 12, 2022
… conflicted.

* Device manager - scroll to filtered list from security recommendations ([\#9227](matrix-org/matrix-react-sdk#9227)). Contributed by @kerryarchibald.
* Device manager - updated dropdown style in filtered device list ([\#9226](matrix-org/matrix-react-sdk#9226)). Contributed by @kerryarchibald.
* Device manager - device type and verification icons on device tile ([\#9197](matrix-org/matrix-react-sdk#9197)). Contributed by @kerryarchibald.
* Ignore unreads in low priority rooms in the space panel ([\#6518](matrix-org/matrix-react-sdk#6518)). Fixes #16836.
* Release message right-click context menu out of labs ([\#8613](matrix-org/matrix-react-sdk#8613)).
* Device manager - expandable session details in device list ([\#9188](matrix-org/matrix-react-sdk#9188)). Contributed by @kerryarchibald.
* Device manager - device list filtering ([\#9181](matrix-org/matrix-react-sdk#9181)). Contributed by @kerryarchibald.
* Device manager - add verification details to session details ([\#9187](matrix-org/matrix-react-sdk#9187)). Contributed by @kerryarchibald.
* Device manager - current session expandable details ([\#9185](matrix-org/matrix-react-sdk#9185)). Contributed by @kerryarchibald.
* Device manager - security recommendations section ([\#9179](matrix-org/matrix-react-sdk#9179)). Contributed by @kerryarchibald.
* The Welcome Home Screen: Return Button ([\#9089](matrix-org/matrix-react-sdk#9089)). Fixes #22917. Contributed by @justjanne.
* Device manager - label devices as inactive ([\#9175](matrix-org/matrix-react-sdk#9175)). Contributed by @kerryarchibald.
* Device manager - other sessions list ([\#9155](matrix-org/matrix-react-sdk#9155)). Contributed by @kerryarchibald.
* Implement MSC3846: Allowing widgets to access TURN servers ([\#9061](matrix-org/matrix-react-sdk#9061)).
* Allow widgets to send/receive to-device messages ([\#8885](matrix-org/matrix-react-sdk#8885)).
* Add super cool feature ([\#9222](matrix-org/matrix-react-sdk#9222)). Contributed by @gefgu.
* Make use of js-sdk roomNameGenerator to handle i18n for generated room names ([\#9209](matrix-org/matrix-react-sdk#9209)). Fixes #21369.
* Fix progress bar regression throughout the app ([\#9219](matrix-org/matrix-react-sdk#9219)). Fixes #23121.
* Reuse empty string & space string logic for event types in devtools ([\#9218](matrix-org/matrix-react-sdk#9218)). Fixes #23115.
* Reduce amount of requests done by the onboarding task list ([\#9194](matrix-org/matrix-react-sdk#9194)). Fixes #23085. Contributed by @justjanne.
* Avoid hardcoding branding in user onboarding ([\#9206](matrix-org/matrix-react-sdk#9206)). Fixes #23111. Contributed by @justjanne.
* End jitsi call when member is banned ([\#8879](matrix-org/matrix-react-sdk#8879)). Contributed by @maheichyk.
* Fix context menu being opened when clicking message action bar buttons ([\#9200](matrix-org/matrix-react-sdk#9200)). Fixes #22279 and #23100.
* Add gap between checkbox and text in report dialog following the same pattern (8px) used in the gap between the two buttons. It fixes element-hq/element-web#23060 ([\#9195](matrix-org/matrix-react-sdk#9195)). Contributed by @gefgu.
* Fix url preview AXE and layout issue & add percy test ([\#9189](matrix-org/matrix-react-sdk#9189)). Fixes #23083.
* Wrap long space names ([\#9201](matrix-org/matrix-react-sdk#9201)). Fixes #23095.
* Attempt to fix `Failed to execute 'removeChild' on 'Node'` ([\#9196](matrix-org/matrix-react-sdk#9196)).
* Fix soft crash around space hierarchy changing between spaces ([\#9191](matrix-org/matrix-react-sdk#9191)). Fixes matrix-org/element-web-rageshakes#14613.
* Fix soft crash around room view store metrics ([\#9190](matrix-org/matrix-react-sdk#9190)). Fixes matrix-org/element-web-rageshakes#14361.
* Fix the same person appearing multiple times when searching for them. ([\#9177](matrix-org/matrix-react-sdk#9177)). Fixes #22851.
* Fix space panel subspace indentation going missing ([\#9167](matrix-org/matrix-react-sdk#9167)). Fixes #23049.
* Fix invisible power levels tile when showing hidden events ([\#9162](matrix-org/matrix-react-sdk#9162)). Fixes #23013.
* Space panel accessibility improvements ([\#9157](matrix-org/matrix-react-sdk#9157)). Fixes #22995.
* Fix inverted logic for showing UserWelcomeTop component ([\#9164](matrix-org/matrix-react-sdk#9164)). Fixes #23037.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
T-Enhancement New features, changes in functionality, performance boosts, user-facing improvements
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants