Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

matrix-widget-api doesn't receive room events in end-to-end encrypted rooms #17615

Closed
ghost opened this issue Jun 10, 2021 · 3 comments · Fixed by matrix-org/matrix-react-sdk#6371
Assignees

Comments

@ghost
Copy link

ghost commented Jun 10, 2021

Description

I made an Element widget that uses the matrix-widget-api to communicate with other users who also have this widget (by sending and receiving events). This works just fine when using state events or if end-to-end encryption is off for the room. However, room events are not received at all if the room is encrypted; the only indication that something was received is an unread message indicator in Element that appears next to the room name (see the attached screenshot). This indicator doesn't appear when events are correctly received (which is the case for room events in unencrypted rooms and state events).

Steps to reproduce

  • Create an encrypted room
  • Open a new tab and open the same room again
  • Add a widget that uses .sendRoomEvent() and .on() to subscribe to/receive events
  • Pin the widget in both tabs and grant the capabilities when requested
  • Have the widget send an event and check if it's been received in the other browser tab

I expected that the event would have been received, just like in unencrypted rooms. After all, widgets are not responsible for encryption - Element is. However, no event was received.

Screenshot 2021-06-10 at 12 18 00

Version information

  • Platform: web
  • Browser: Chrome Version 91.0.4472.77 (Official Build) (arm64)
  • OS: macOS 11.4 (20F71)
  • URL: develop.element.io
@ghost
Copy link
Author

ghost commented Jul 19, 2021

@turt2live The issue is not resolved. In encrypted rooms messages are received with a considerable delay, in random order and only the first 25 that were sent. Also, the unread message indicator still appears.

@turt2live
Copy link
Member

The postMessage API by nature is not very fast, but what sort of delay are you seeing?

I'll check the order of things.

The limit is unfortunately a different issue that will have to be looked at, largely from the spec perspective.

The read marker is not intended to be affected by this functionality, and would be a separate issue.

@ghost
Copy link
Author

ghost commented Jul 19, 2021

The postMessage API by nature is not very fast, but what sort of delay are you seeing?

I'll check the order of things.

The limit is unfortunately a different issue that will have to be looked at, largely from the spec perspective.

The read marker is not intended to be affected by this functionality, and would be a separate issue.

I'm opening a separate issue, but to sum it up:

  1. There's a delay of several seconds before anything is shown at all and between each message there's a noticeable delay that's not present in unencrypted rooms.
  2. In unencrypted rooms you receive the last 25 messages when reading, but in encrypted rooms you receive the first 25 that were sent. The behaviour is completely different.
  3. There's no unread indicator in unencrypted rooms, only in encrypted ones.
  4. Messages arrive out of order (unlike in unencrypted rooms), but I believe that can be solved by sorting them by timestamp.

williamkray pushed a commit to williamkray/matrix-react-sdk that referenced this issue Aug 2, 2021
* Sanitize untrusted variables from message previews before translation
Fixes element-hq/element-web#18314
* Fix editing of `<sub>` & `<sup`> & `<u>`
[\matrix-org#6469](matrix-org#6469)
Fixes element-hq/element-web#18211
* Zoom images in lightbox to where the cursor points
[\matrix-org#6418](matrix-org#6418)
Fixes element-hq/element-web#17870
* Avoid hitting the settings store from TextForEvent
[\matrix-org#6205](matrix-org#6205)
Fixes element-hq/element-web#17650
* Initial MSC3083 + MSC3244 support
[\matrix-org#6212](matrix-org#6212)
Fixes element-hq/element-web#17686 and element-hq/element-web#17661
* Navigate to the first room with notifications when clicked on space notification dot
[\matrix-org#5974](matrix-org#5974)
* Add matrix: to the list of permitted URL schemes
[\matrix-org#6388](matrix-org#6388)
* Add "Copy Link" to room context menu
[\matrix-org#6374](matrix-org#6374)
* 💭 Message bubble layout
[\matrix-org#6291](matrix-org#6291)
Fixes element-hq/element-web#4635, element-hq/element-web#17773 element-hq/element-web#16220 and element-hq/element-web#7687
* Play only one audio file at a time
[\matrix-org#6417](matrix-org#6417)
Fixes element-hq/element-web#17439
* Move download button for media to the action bar
[\matrix-org#6386](matrix-org#6386)
Fixes element-hq/element-web#17943
* Improved display of one-to-one call history with summary boxes for each call
[\matrix-org#6121](matrix-org#6121)
Fixes element-hq/element-web#16409
* Notification settings UI refresh
[\matrix-org#6352](matrix-org#6352)
Fixes element-hq/element-web#17782
* Fix EventIndex double handling events and erroring
[\matrix-org#6385](matrix-org#6385)
Fixes element-hq/element-web#18008
* Improve reply rendering
[\matrix-org#3553](matrix-org#3553)
Fixes element-hq/element-web#9217, element-hq/element-web#7633, element-hq/element-web#7530, element-hq/element-web#7169, element-hq/element-web#7151, element-hq/element-web#6692 element-hq/element-web#6579 and element-hq/element-web#17440
* Fix CreateRoomDialog exploding when making public room outside of a space
[\matrix-org#6493](matrix-org#6493)
* Fix regression where registration would soft-crash on captcha
[\matrix-org#6505](matrix-org#6505)
Fixes element-hq/element-web#18284
* only send join rule event if we have a join rule to put in it
[\matrix-org#6517](matrix-org#6517)
* Improve the new download button's discoverability and interactions.
[\matrix-org#6510](matrix-org#6510)
* Fix voice recording UI looking broken while microphone permissions are being requested.
[\matrix-org#6479](matrix-org#6479)
Fixes element-hq/element-web#18223
* Match colors of room and user avatars in DMs
[\matrix-org#6393](matrix-org#6393)
Fixes element-hq/element-web#2449
* Fix onPaste handler to work with copying files from Finder
[\matrix-org#5389](matrix-org#5389)
Fixes element-hq/element-web#15536 and element-hq/element-web#16255
* Fix infinite pagination loop when offline
[\matrix-org#6478](matrix-org#6478)
Fixes element-hq/element-web#18242
* Fix blurhash rounded corners missing regression
[\matrix-org#6467](matrix-org#6467)
Fixes element-hq/element-web#18110
* Fix position of the space hierarchy spinner
[\matrix-org#6462](matrix-org#6462)
Fixes element-hq/element-web#18182
* Fix display of image messages that lack thumbnails
[\matrix-org#6456](matrix-org#6456)
Fixes element-hq/element-web#18175
* Fix crash with large audio files.
[\matrix-org#6436](matrix-org#6436)
Fixes element-hq/element-web#18149
* Make diff colors in codeblocks more pleasant
[\matrix-org#6355](matrix-org#6355)
Fixes element-hq/element-web#17939
* Show the correct audio file duration while loading the file.
[\matrix-org#6435](matrix-org#6435)
Fixes element-hq/element-web#18160
* Fix various timeline settings not applying immediately.
[\matrix-org#6261](matrix-org#6261)
Fixes element-hq/element-web#17748
* Fix issues with room list duplication
[\matrix-org#6391](matrix-org#6391)
Fixes element-hq/element-web#14508
* Fix grecaptcha throwing useless error sometimes
[\matrix-org#6401](matrix-org#6401)
Fixes element-hq/element-web#15142
* Update Emojibase and Twemoji and switch to IamCal (Slack-style) shortcodes
[\matrix-org#6347](matrix-org#6347)
Fixes element-hq/element-web#13857 and element-hq/element-web#13334
* Respect compound emojis in default avatar initial generation
[\matrix-org#6397](matrix-org#6397)
Fixes element-hq/element-web#18040
* Fix bug where the 'other homeserver' field in the server selection dialog would become briefly focus and then unfocus when clicked.
[\matrix-org#6394](matrix-org#6394)
Fixes element-hq/element-web#18031
* Standardise spelling and casing of homeserver, identity server, and integration manager
[\matrix-org#6365](matrix-org#6365)
* Fix widgets not receiving decrypted events when they have permission.
[\matrix-org#6371](matrix-org#6371)
Fixes element-hq/element-web#17615
* Prevent client hangs when calculating blurhashes
[\matrix-org#6366](matrix-org#6366)
Fixes element-hq/element-web#17945
* Exclude state events from widgets reading room events
[\matrix-org#6378](matrix-org#6378)
* Cache feature_spaces\* flags to improve performance
[\matrix-org#6381](matrix-org#6381)
williamkray pushed a commit to williamkray/element-web that referenced this issue Aug 2, 2021
* Sanitize untrusted variables from message previews before translation
Fixes element-hq#18314
* Fix editing of `<sub>` & `<sup`> & `<u>`
[\element-hq#6469](matrix-org/matrix-react-sdk#6469)
Fixes element-hq#18211
* Zoom images in lightbox to where the cursor points
[\element-hq#6418](matrix-org/matrix-react-sdk#6418)
Fixes element-hq#17870
* Avoid hitting the settings store from TextForEvent
[\element-hq#6205](matrix-org/matrix-react-sdk#6205)
Fixes element-hq#17650
* Initial MSC3083 + MSC3244 support
[\element-hq#6212](matrix-org/matrix-react-sdk#6212)
Fixes element-hq#17686 and element-hq#17661
* Navigate to the first room with notifications when clicked on space notification dot
[\element-hq#5974](matrix-org/matrix-react-sdk#5974)
* Add matrix: to the list of permitted URL schemes
[\element-hq#6388](matrix-org/matrix-react-sdk#6388)
* Add "Copy Link" to room context menu
[\element-hq#6374](matrix-org/matrix-react-sdk#6374)
* 💭 Message bubble layout
[\element-hq#6291](matrix-org/matrix-react-sdk#6291)
Fixes element-hq#4635, element-hq#17773 element-hq#16220 and element-hq#7687
* Play only one audio file at a time
[\#6417](matrix-org/matrix-react-sdk#6417)
Fixes element-hq#17439
* Move download button for media to the action bar
[\element-hq#6386](matrix-org/matrix-react-sdk#6386)
Fixes element-hq#17943
* Improved display of one-to-one call history with summary boxes for each call
[\element-hq#6121](matrix-org/matrix-react-sdk#6121)
Fixes element-hq#16409
* Notification settings UI refresh
[\element-hq#6352](matrix-org/matrix-react-sdk#6352)
Fixes element-hq#17782
* Fix EventIndex double handling events and erroring
[\element-hq#6385](matrix-org/matrix-react-sdk#6385)
Fixes element-hq#18008
* Improve reply rendering
[\element-hq#3553](matrix-org/matrix-react-sdk#3553)
Fixes element-hq#9217, element-hq#7633, element-hq#7530, element-hq#7169, element-hq#7151, element-hq#6692 element-hq#6579 and element-hq#17440
* Improve performance of room name calculation
[\element-hq#1801](matrix-org/matrix-js-sdk#1801)
* Fix browser history getting stuck looping back to the same room
[\element-hq#18053](element-hq#18053)
* Fix space shortcuts on layouts with non-English keys in the places of numbers
[\element-hq#17780](element-hq#17780)
Fixes element-hq#17776
* Fix CreateRoomDialog exploding when making public room outside of a space
[\element-hq#6493](matrix-org/matrix-react-sdk#6493)
* Fix regression where registration would soft-crash on captcha
[\element-hq#6505](matrix-org/matrix-react-sdk#6505)
Fixes element-hq#18284
* only send join rule event if we have a join rule to put in it
[\element-hq#6517](matrix-org/matrix-react-sdk#6517)
* Improve the new download button's discoverability and interactions.
[\element-hq#6510](matrix-org/matrix-react-sdk#6510)
* Fix voice recording UI looking broken while microphone permissions are being requested.
[\element-hq#6479](matrix-org/matrix-react-sdk#6479)
Fixes element-hq#18223
* Match colors of room and user avatars in DMs
[\element-hq#6393](matrix-org/matrix-react-sdk#6393)
Fixes element-hq#2449
* Fix onPaste handler to work with copying files from Finder
[\element-hq#5389](matrix-org/matrix-react-sdk#5389)
Fixes element-hq#15536 and element-hq#16255
* Fix infinite pagination loop when offline
[\element-hq#6478](matrix-org/matrix-react-sdk#6478)
Fixes element-hq#18242
* Fix blurhash rounded corners missing regression
[\element-hq#6467](matrix-org/matrix-react-sdk#6467)
Fixes element-hq#18110
* Fix position of the space hierarchy spinner
[\element-hq#6462](matrix-org/matrix-react-sdk#6462)
Fixes element-hq#18182
* Fix display of image messages that lack thumbnails
[\element-hq#6456](matrix-org/matrix-react-sdk#6456)
Fixes element-hq#18175
* Fix crash with large audio files.
[\element-hq#6436](matrix-org/matrix-react-sdk#6436)
Fixes element-hq#18149
* Make diff colors in codeblocks more pleasant
[\element-hq#6355](matrix-org/matrix-react-sdk#6355)
Fixes element-hq#17939
* Show the correct audio file duration while loading the file.
[\element-hq#6435](matrix-org/matrix-react-sdk#6435)
Fixes element-hq#18160
* Fix various timeline settings not applying immediately.
[\element-hq#6261](matrix-org/matrix-react-sdk#6261)
Fixes element-hq#17748
* Fix issues with room list duplication
[\element-hq#6391](matrix-org/matrix-react-sdk#6391)
Fixes element-hq#14508
* Fix grecaptcha throwing useless error sometimes
[\element-hq#6401](matrix-org/matrix-react-sdk#6401)
Fixes element-hq#15142
* Update Emojibase and Twemoji and switch to IamCal (Slack-style) shortcodes
[\element-hq#6347](matrix-org/matrix-react-sdk#6347)
Fixes element-hq#13857 and element-hq#13334
* Respect compound emojis in default avatar initial generation
[\element-hq#6397](matrix-org/matrix-react-sdk#6397)
Fixes element-hq#18040
* Fix bug where the 'other homeserver' field in the server selection dialog would become briefly focus and then unfocus when clicked.
[\element-hq#6394](matrix-org/matrix-react-sdk#6394)
Fixes element-hq#18031
* Standardise spelling and casing of homeserver, identity server, and integration manager
[\element-hq#6365](matrix-org/matrix-react-sdk#6365)
* Fix widgets not receiving decrypted events when they have permission.
[\element-hq#6371](matrix-org/matrix-react-sdk#6371)
Fixes element-hq#17615
* Prevent client hangs when calculating blurhashes
[\element-hq#6366](matrix-org/matrix-react-sdk#6366)
Fixes element-hq#17945
* Exclude state events from widgets reading room events
[\element-hq#6378](matrix-org/matrix-react-sdk#6378)
* Cache feature_spaces\* flags to improve performance
[\element-hq#6381](matrix-org/matrix-react-sdk#6381)
BBaoVanC added a commit to boba-best/element.boba.best that referenced this issue Aug 3, 2021
* Sanitize untrusted variables from message previews before translation
Fixes element-hq#18314
* Fix editing of `<sub>` & `<sup`> & `<u>`
[\element-hq#6469](matrix-org/matrix-react-sdk#6469)
Fixes element-hq#18211
* Zoom images in lightbox to where the cursor points
[\element-hq#6418](matrix-org/matrix-react-sdk#6418)
Fixes element-hq#17870
* Avoid hitting the settings store from TextForEvent
[\element-hq#6205](matrix-org/matrix-react-sdk#6205)
Fixes element-hq#17650
* Initial MSC3083 + MSC3244 support
[\element-hq#6212](matrix-org/matrix-react-sdk#6212)
Fixes element-hq#17686 and element-hq#17661
* Navigate to the first room with notifications when clicked on space notification dot
[\element-hq#5974](matrix-org/matrix-react-sdk#5974)
* Add matrix: to the list of permitted URL schemes
[\element-hq#6388](matrix-org/matrix-react-sdk#6388)
* Add "Copy Link" to room context menu
[\element-hq#6374](matrix-org/matrix-react-sdk#6374)
* 💭 Message bubble layout
[\element-hq#6291](matrix-org/matrix-react-sdk#6291)
Fixes element-hq#4635, element-hq#17773 element-hq#16220 and element-hq#7687
* Play only one audio file at a time
[\#6417](matrix-org/matrix-react-sdk#6417)
Fixes element-hq#17439
* Move download button for media to the action bar
[\element-hq#6386](matrix-org/matrix-react-sdk#6386)
Fixes element-hq#17943
* Improved display of one-to-one call history with summary boxes for each call
[\element-hq#6121](matrix-org/matrix-react-sdk#6121)
Fixes element-hq#16409
* Notification settings UI refresh
[\element-hq#6352](matrix-org/matrix-react-sdk#6352)
Fixes element-hq#17782
* Fix EventIndex double handling events and erroring
[\element-hq#6385](matrix-org/matrix-react-sdk#6385)
Fixes element-hq#18008
* Improve reply rendering
[\element-hq#3553](matrix-org/matrix-react-sdk#3553)
Fixes element-hq#9217, element-hq#7633, element-hq#7530, element-hq#7169, element-hq#7151, element-hq#6692 element-hq#6579 and element-hq#17440
* Improve performance of room name calculation
[\element-hq#1801](matrix-org/matrix-js-sdk#1801)
* Fix browser history getting stuck looping back to the same room
[\element-hq#18053](element-hq#18053)
* Fix space shortcuts on layouts with non-English keys in the places of numbers
[\element-hq#17780](element-hq#17780)
Fixes element-hq#17776
* Fix CreateRoomDialog exploding when making public room outside of a space
[\element-hq#6493](matrix-org/matrix-react-sdk#6493)
* Fix regression where registration would soft-crash on captcha
[\element-hq#6505](matrix-org/matrix-react-sdk#6505)
Fixes element-hq#18284
* only send join rule event if we have a join rule to put in it
[\element-hq#6517](matrix-org/matrix-react-sdk#6517)
* Improve the new download button's discoverability and interactions.
[\element-hq#6510](matrix-org/matrix-react-sdk#6510)
* Fix voice recording UI looking broken while microphone permissions are being requested.
[\element-hq#6479](matrix-org/matrix-react-sdk#6479)
Fixes element-hq#18223
* Match colors of room and user avatars in DMs
[\element-hq#6393](matrix-org/matrix-react-sdk#6393)
Fixes element-hq#2449
* Fix onPaste handler to work with copying files from Finder
[\element-hq#5389](matrix-org/matrix-react-sdk#5389)
Fixes element-hq#15536 and element-hq#16255
* Fix infinite pagination loop when offline
[\element-hq#6478](matrix-org/matrix-react-sdk#6478)
Fixes element-hq#18242
* Fix blurhash rounded corners missing regression
[\element-hq#6467](matrix-org/matrix-react-sdk#6467)
Fixes element-hq#18110
* Fix position of the space hierarchy spinner
[\element-hq#6462](matrix-org/matrix-react-sdk#6462)
Fixes element-hq#18182
* Fix display of image messages that lack thumbnails
[\element-hq#6456](matrix-org/matrix-react-sdk#6456)
Fixes element-hq#18175
* Fix crash with large audio files.
[\element-hq#6436](matrix-org/matrix-react-sdk#6436)
Fixes element-hq#18149
* Make diff colors in codeblocks more pleasant
[\element-hq#6355](matrix-org/matrix-react-sdk#6355)
Fixes element-hq#17939
* Show the correct audio file duration while loading the file.
[\element-hq#6435](matrix-org/matrix-react-sdk#6435)
Fixes element-hq#18160
* Fix various timeline settings not applying immediately.
[\element-hq#6261](matrix-org/matrix-react-sdk#6261)
Fixes element-hq#17748
* Fix issues with room list duplication
[\element-hq#6391](matrix-org/matrix-react-sdk#6391)
Fixes element-hq#14508
* Fix grecaptcha throwing useless error sometimes
[\element-hq#6401](matrix-org/matrix-react-sdk#6401)
Fixes element-hq#15142
* Update Emojibase and Twemoji and switch to IamCal (Slack-style) shortcodes
[\element-hq#6347](matrix-org/matrix-react-sdk#6347)
Fixes element-hq#13857 and element-hq#13334
* Respect compound emojis in default avatar initial generation
[\element-hq#6397](matrix-org/matrix-react-sdk#6397)
Fixes element-hq#18040
* Fix bug where the 'other homeserver' field in the server selection dialog would become briefly focus and then unfocus when clicked.
[\element-hq#6394](matrix-org/matrix-react-sdk#6394)
Fixes element-hq#18031
* Standardise spelling and casing of homeserver, identity server, and integration manager
[\element-hq#6365](matrix-org/matrix-react-sdk#6365)
* Fix widgets not receiving decrypted events when they have permission.
[\element-hq#6371](matrix-org/matrix-react-sdk#6371)
Fixes element-hq#17615
* Prevent client hangs when calculating blurhashes
[\element-hq#6366](matrix-org/matrix-react-sdk#6366)
Fixes element-hq#17945
* Exclude state events from widgets reading room events
[\element-hq#6378](matrix-org/matrix-react-sdk#6378)
* Cache feature_spaces\* flags to improve performance
[\element-hq#6381](matrix-org/matrix-react-sdk#6381)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant