-
-
Notifications
You must be signed in to change notification settings - Fork 2k
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
Message previews should format newlines as whitespace #16169
Message previews should format newlines as whitespace #16169
Comments
Can you share the event source for that edit? I have a feeling it was sent from Element Android which has a bug with how it sends edits. (Actually, I'm fairly certain of it) |
I linked the event in question, which is in the public TWIM room. Anyway here's the source:
I have seen the issue of the badly formatted reply before in relation with element android, however this is the first time I noticed the badly formatted message preview in the room list. |
The preview will be using the |
The preview in the roomlist should probably ignore the content of |
It would if the reply was spec conforming. The fallback must be stripped from edit |
I am not sure what you mean. https://github.com/uhoreg/matrix-doc/blob/aggregations-edits/proposals/2676-message-editing.md states that the fallback body in the outer object is there for a reason. If I understand correctly, what I described should happen: https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/stores/room-list/previews/MessageEventPreview.ts#L50. |
As per the link you sent:
That last paragraph is not being done correctly in the client which was used to edit the event, creating this mess. |
Thanks for pointing me to the correct part of the proposal. As a result I ask myself why synapse accepts such msgs in the first place. But that does not answer why the codepath for the preview is not taken here.
|
Synapse can't govern everything because this could equally be an encrypted room and thus it can't read it.
That would work for formatted messages but if it was a plaintext message there's no way to know if the The sending client should just be fixed.
Not quite, it checks |
Yes the sending client should be fixed. BUT. You cannot enforce clients in an open spec that allow such malformed events in the DAG. And thus the display part in element should also be fixed. As you can see in the screenshots, the formatted_body is displayed in the preview.
eventContent is set the new_content here https://github.com/matrix-org/matrix-react-sdk/blob/3115c4f3f3ed0b2f1d82c5882dcce007b188c206/src/stores/room-list/previews/MessageEventPreview.ts#L31 But I think this discussion drifts from the original issue mentioned by HarHarLinks |
The thing you are missing is the The code you linked, lower down checks only whether the root contains
There is no way to fix every other clients mistakes, handling some just masks the problem with that other client, making it harder to get fixed and also just yields less maintainable code. |
What are the issues with using
A malicious actor can change codepaths taken for sanitization by injecting a slightly malformed event into the DAG. I would consider stripping mx-reply from previews in every case, the more maintainable code. |
non spec conforming.
Inconsistency with the ability to do the same for plaintext events.
I would prefer removing the fallbacks altogether as they are horrendous, for more maintainable code. This talk of camouflaging issues with other clients, in the context of bad actors, is moot. The current behaviour (following the spec) leaves more flexibility in the future for the spec to create backwards-compatible extensions to the current stuff, whereas always stripping |
* Add unread indicator to the timelineCard header icon ([\matrix-org#7156](matrix-org#7156)). Fixes element-hq/element-web#19635. * Only show core navigation elements (call/chat/notification/info) when a widget is maximised ([\matrix-org#7114](matrix-org#7114)). Fixes element-hq/element-web#19632. * Improve ThreadPanel ctx menu accessibility ([\matrix-org#7217](matrix-org#7217)). Fixes element-hq/element-web#19885. * Allow filtering room list during treeview navigation ([\matrix-org#7219](matrix-org#7219)). Fixes element-hq/element-web#14702. * Add right panel chat timeline ([\matrix-org#7112](matrix-org#7112)). Fixes element-hq/element-web#19633. * Hide server options hint when disable_custom_urls is true ([\matrix-org#7215](matrix-org#7215)). Fixes element-hq/element-web#19919. * Improve right panel resize handle usability ([\matrix-org#7204](matrix-org#7204)). Fixes element-hq/element-web#15145. Contributed by @weeman1337. * Spaces quick settings ([\matrix-org#7196](matrix-org#7196)). * Maximised widgets always force a call to be shown in PIP mode ([\matrix-org#7163](matrix-org#7163)). Fixes element-hq/element-web#19637. * Group Labs flags ([\matrix-org#7190](matrix-org#7190)). * Show room context details in forward dialog ([\matrix-org#7162](matrix-org#7162)). Fixes element-hq/element-web#19793. * Remove chevrons from RoomSummaryCard_Button ([\matrix-org#7137](matrix-org#7137)). Fixes element-hq/element-web#19644. * Disable op/deop commands where user has no permissions ([\matrix-org#7161](matrix-org#7161)). Fixes element-hq/element-web#15390. * Add option to change the size of images/videos in the timeline ([\matrix-org#7017](matrix-org#7017)). Fixes element-hq/element-meta#49 element-hq/element-web#1520 and element-hq/element-web#19498. * Fix left panel glow in Safari ([\matrix-org#7236](matrix-org#7236)). Fixes element-hq/element-web#19863. * Fix newline on edit messages with quotes ([\matrix-org#7227](matrix-org#7227)). Fixes element-hq/element-web#12535. Contributed by @renancleyson-dev. * Guard against null refs in findSiblingElement ([\matrix-org#7228](matrix-org#7228)). * Tweak bottom of space panel buttons in expanded state ([\matrix-org#7213](matrix-org#7213)). Fixes element-hq/element-web#19921. * Fix multiline paragraph rendering as single line ([\matrix-org#7210](matrix-org#7210)). Fixes element-hq/element-web#8786. Contributed by @renancleyson-dev. * Improve room list message previews ([\matrix-org#7224](matrix-org#7224)). Fixes element-hq/element-web#17101 and element-hq/element-web#16169. * Fix EmojiPicker lazy loaded rendering bug ([\matrix-org#7225](matrix-org#7225)). Fixes element-hq/element-web#15341. * Prevent default avatar in UserInfo having pointer cursor ([\matrix-org#7218](matrix-org#7218)). Fixes element-hq/element-web#13872. * Prevent duplicate avatars in Event List Summaries ([\matrix-org#7222](matrix-org#7222)). Fixes element-hq/element-web#17706. * Respect the home page as a context for the Home space ([\matrix-org#7216](matrix-org#7216)). Fixes element-hq/element-web#19554. * Fix RoomUpgradeWarningBar exploding ([\matrix-org#7214](matrix-org#7214)). Fixes element-hq/element-web#19920. * Polish threads misalignments and UI diversion ([\matrix-org#7209](matrix-org#7209)). Fixes element-hq/element-web#19772, element-hq/element-web#19710 element-hq/element-web#19629 and element-hq/element-web#19711. * Fix Manage Restricted Join Rule Dialog for Spaces ([\matrix-org#7208](matrix-org#7208)). Fixes element-hq/element-web#19610. * Fix wrongly showing unpin in pinned messages tile with no perms ([\matrix-org#7197](matrix-org#7197)). Fixes element-hq/element-web#19886. * Make image size constrained by height when using the ImageSize.Large option ([\matrix-org#7171](matrix-org#7171)). Fixes element-hq/element-web#19788. * Prevent programmatic scrolling within truncated room sublists ([\matrix-org#7191](matrix-org#7191)). * Remove leading slash from /addwidget Jitsi confs ([\matrix-org#7175](matrix-org#7175)). Fixes element-hq/element-web#19839. Contributed by @AndrewFerr. * Fix automatic composer focus, regressed by threads work ([\matrix-org#7167](matrix-org#7167)). Fixes element-hq/element-web#19479. * Show space members when not invited even if summary didn't fail ([\matrix-org#7153](matrix-org#7153)). Fixes element-hq/element-web#19781. * Prevent custom power levels from breaking roles & permissions tab ([\matrix-org#7160](matrix-org#7160)). Fixes element-hq/element-web#19812. * Room Context Menu should respond to tag changes ([\matrix-org#7154](matrix-org#7154)). Fixes element-hq/element-web#19776. * Fix an edge case when trying to join an upgraded room ([\matrix-org#7159](matrix-org#7159)).
* Add unread indicator to the timelineCard header icon ([\#7156](matrix-org/matrix-react-sdk#7156)). Fixes element-hq/element-web#19635. * Only show core navigation elements (call/chat/notification/info) when a widget is maximised ([\#7114](matrix-org/matrix-react-sdk#7114)). Fixes element-hq/element-web#19632. * Improve ThreadPanel ctx menu accessibility ([\#7217](matrix-org/matrix-react-sdk#7217)). Fixes element-hq/element-web#19885. * Allow filtering room list during treeview navigation ([\#7219](matrix-org/matrix-react-sdk#7219)). Fixes element-hq/element-web#14702. * Add right panel chat timeline ([\#7112](matrix-org/matrix-react-sdk#7112)). Fixes element-hq/element-web#19633. * Hide server options hint when disable_custom_urls is true ([\#7215](matrix-org/matrix-react-sdk#7215)). Fixes element-hq/element-web#19919. * Improve right panel resize handle usability ([\#7204](matrix-org/matrix-react-sdk#7204)). Fixes element-hq/element-web#15145. Contributed by @weeman1337. * Spaces quick settings ([\#7196](matrix-org/matrix-react-sdk#7196)). * Maximised widgets always force a call to be shown in PIP mode ([\#7163](matrix-org/matrix-react-sdk#7163)). Fixes element-hq/element-web#19637. * Group Labs flags ([\#7190](matrix-org/matrix-react-sdk#7190)). * Show room context details in forward dialog ([\#7162](matrix-org/matrix-react-sdk#7162)). Fixes element-hq/element-web#19793. * Remove chevrons from RoomSummaryCard_Button ([\#7137](matrix-org/matrix-react-sdk#7137)). Fixes element-hq/element-web#19644. * Disable op/deop commands where user has no permissions ([\#7161](matrix-org/matrix-react-sdk#7161)). Fixes element-hq/element-web#15390. * Add option to change the size of images/videos in the timeline ([\#7017](matrix-org/matrix-react-sdk#7017)). Fixes element-hq/element-meta#49 element-hq/element-web#1520 and element-hq/element-web#19498. * Fix left panel glow in Safari ([\#7236](matrix-org/matrix-react-sdk#7236)). Fixes element-hq/element-web#19863. * Fix newline on edit messages with quotes ([\#7227](matrix-org/matrix-react-sdk#7227)). Fixes element-hq/element-web#12535. Contributed by @renancleyson-dev. * Guard against null refs in findSiblingElement ([\#7228](matrix-org/matrix-react-sdk#7228)). * Tweak bottom of space panel buttons in expanded state ([\#7213](matrix-org/matrix-react-sdk#7213)). Fixes element-hq/element-web#19921. * Fix multiline paragraph rendering as single line ([\#7210](matrix-org/matrix-react-sdk#7210)). Fixes element-hq/element-web#8786. Contributed by @renancleyson-dev. * Improve room list message previews ([\#7224](matrix-org/matrix-react-sdk#7224)). Fixes element-hq/element-web#17101 and element-hq/element-web#16169. * Fix EmojiPicker lazy loaded rendering bug ([\#7225](matrix-org/matrix-react-sdk#7225)). Fixes element-hq/element-web#15341. * Prevent default avatar in UserInfo having pointer cursor ([\#7218](matrix-org/matrix-react-sdk#7218)). Fixes element-hq/element-web#13872. * Prevent duplicate avatars in Event List Summaries ([\#7222](matrix-org/matrix-react-sdk#7222)). Fixes element-hq/element-web#17706. * Respect the home page as a context for the Home space ([\#7216](matrix-org/matrix-react-sdk#7216)). Fixes element-hq/element-web#19554. * Fix RoomUpgradeWarningBar exploding ([\#7214](matrix-org/matrix-react-sdk#7214)). Fixes element-hq/element-web#19920. * Polish threads misalignments and UI diversion ([\#7209](matrix-org/matrix-react-sdk#7209)). Fixes element-hq/element-web#19772, element-hq/element-web#19710 element-hq/element-web#19629 and element-hq/element-web#19711. * Fix Manage Restricted Join Rule Dialog for Spaces ([\#7208](matrix-org/matrix-react-sdk#7208)). Fixes element-hq/element-web#19610. * Fix wrongly showing unpin in pinned messages tile with no perms ([\#7197](matrix-org/matrix-react-sdk#7197)). Fixes element-hq/element-web#19886. * Make image size constrained by height when using the ImageSize.Large option ([\#7171](matrix-org/matrix-react-sdk#7171)). Fixes element-hq/element-web#19788. * Prevent programmatic scrolling within truncated room sublists ([\#7191](matrix-org/matrix-react-sdk#7191)). * Remove leading slash from /addwidget Jitsi confs ([\#7175](matrix-org/matrix-react-sdk#7175)). Fixes element-hq/element-web#19839. Contributed by @AndrewFerr. * Fix automatic composer focus, regressed by threads work ([\#7167](matrix-org/matrix-react-sdk#7167)). Fixes element-hq/element-web#19479. * Show space members when not invited even if summary didn't fail ([\#7153](matrix-org/matrix-react-sdk#7153)). Fixes element-hq/element-web#19781. * Prevent custom power levels from breaking roles & permissions tab ([\#7160](matrix-org/matrix-react-sdk#7160)). Fixes element-hq/element-web#19812. * Room Context Menu should respond to tag changes ([\#7154](matrix-org/matrix-react-sdk#7154)). Fixes element-hq/element-web#19776. * Fix an edge case when trying to join an upgraded room ([\#7159](matrix-org/matrix-react-sdk#7159)).
* Add unread indicator to the timelineCard header icon ([\element-hq#7156](matrix-org/matrix-react-sdk#7156)). Fixes element-hq#19635. * Only show core navigation elements (call/chat/notification/info) when a widget is maximised ([\element-hq#7114](matrix-org/matrix-react-sdk#7114)). Fixes element-hq#19632. * Improve ThreadPanel ctx menu accessibility ([\element-hq#7217](matrix-org/matrix-react-sdk#7217)). Fixes element-hq#19885. * Allow filtering room list during treeview navigation ([\element-hq#7219](matrix-org/matrix-react-sdk#7219)). Fixes element-hq#14702. * Add right panel chat timeline ([\element-hq#7112](matrix-org/matrix-react-sdk#7112)). Fixes element-hq#19633. * Hide server options hint when disable_custom_urls is true ([\element-hq#7215](matrix-org/matrix-react-sdk#7215)). Fixes element-hq#19919. * Improve right panel resize handle usability ([\element-hq#7204](matrix-org/matrix-react-sdk#7204)). Fixes element-hq#15145. Contributed by @weeman1337. * Spaces quick settings ([\element-hq#7196](matrix-org/matrix-react-sdk#7196)). * Maximised widgets always force a call to be shown in PIP mode ([\element-hq#7163](matrix-org/matrix-react-sdk#7163)). Fixes element-hq#19637. * Group Labs flags ([\#7190](matrix-org/matrix-react-sdk#7190)). * Show room context details in forward dialog ([\element-hq#7162](matrix-org/matrix-react-sdk#7162)). Fixes element-hq#19793. * Remove chevrons from RoomSummaryCard_Button ([\element-hq#7137](matrix-org/matrix-react-sdk#7137)). Fixes element-hq#19644. * Disable op/deop commands where user has no permissions ([\element-hq#7161](matrix-org/matrix-react-sdk#7161)). Fixes element-hq#15390. * Add option to change the size of images/videos in the timeline ([\element-hq#7017](matrix-org/matrix-react-sdk#7017)). Fixes element-hq/element-meta#49 element-hq#1520 and element-hq#19498. * Fix left panel glow in Safari ([\element-hq#7236](matrix-org/matrix-react-sdk#7236)). Fixes element-hq#19863. * Fix newline on edit messages with quotes ([\element-hq#7227](matrix-org/matrix-react-sdk#7227)). Fixes element-hq#12535. Contributed by @renancleyson-dev. * Guard against null refs in findSiblingElement ([\#7228](matrix-org/matrix-react-sdk#7228)). * Tweak bottom of space panel buttons in expanded state ([\element-hq#7213](matrix-org/matrix-react-sdk#7213)). Fixes element-hq#19921. * Fix multiline paragraph rendering as single line ([\element-hq#7210](matrix-org/matrix-react-sdk#7210)). Fixes element-hq#8786. Contributed by @renancleyson-dev. * Improve room list message previews ([\element-hq#7224](matrix-org/matrix-react-sdk#7224)). Fixes element-hq#17101 and element-hq#16169. * Fix EmojiPicker lazy loaded rendering bug ([\element-hq#7225](matrix-org/matrix-react-sdk#7225)). Fixes element-hq#15341. * Prevent default avatar in UserInfo having pointer cursor ([\element-hq#7218](matrix-org/matrix-react-sdk#7218)). Fixes element-hq#13872. * Prevent duplicate avatars in Event List Summaries ([\element-hq#7222](matrix-org/matrix-react-sdk#7222)). Fixes element-hq#17706. * Respect the home page as a context for the Home space ([\element-hq#7216](matrix-org/matrix-react-sdk#7216)). Fixes element-hq#19554. * Fix RoomUpgradeWarningBar exploding ([\element-hq#7214](matrix-org/matrix-react-sdk#7214)). Fixes element-hq#19920. * Polish threads misalignments and UI diversion ([\element-hq#7209](matrix-org/matrix-react-sdk#7209)). Fixes element-hq#19772, element-hq#19710 element-hq#19629 and element-hq#19711. * Fix Manage Restricted Join Rule Dialog for Spaces ([\element-hq#7208](matrix-org/matrix-react-sdk#7208)). Fixes element-hq#19610. * Fix wrongly showing unpin in pinned messages tile with no perms ([\element-hq#7197](matrix-org/matrix-react-sdk#7197)). Fixes element-hq#19886. * Make image size constrained by height when using the ImageSize.Large option ([\element-hq#7171](matrix-org/matrix-react-sdk#7171)). Fixes element-hq#19788. * Prevent programmatic scrolling within truncated room sublists ([\element-hq#7191](matrix-org/matrix-react-sdk#7191)). * Remove leading slash from /addwidget Jitsi confs ([\element-hq#7175](matrix-org/matrix-react-sdk#7175)). Fixes element-hq#19839. Contributed by @AndrewFerr. * Fix automatic composer focus, regressed by threads work ([\element-hq#7167](matrix-org/matrix-react-sdk#7167)). Fixes element-hq#19479. * Show space members when not invited even if summary didn't fail ([\element-hq#7153](matrix-org/matrix-react-sdk#7153)). Fixes element-hq#19781. * Prevent custom power levels from breaking roles & permissions tab ([\element-hq#7160](matrix-org/matrix-react-sdk#7160)). Fixes element-hq#19812. * Room Context Menu should respond to tag changes ([\element-hq#7154](matrix-org/matrix-react-sdk#7154)). Fixes element-hq#19776. * Fix an edge case when trying to join an upgraded room ([\element-hq#7159](matrix-org/matrix-react-sdk#7159)).
Description
Reply previews are not formatted correctly (missing whitespace).
Steps to reproduce
Logs being sent: no
This is the preview I noticed.
This is the corresponding message:
Note that the message itself also seems messed up.
Version information
For the desktop app:
The text was updated successfully, but these errors were encountered: