Skip to content

Consider making the browser url when a room is open non-shareable #24494

Open
@deepbluev7

Description

@deepbluev7

Your use case

What would you like to do?

Make the address in the browser address bar not shareable to join a room. Basically prevent people from assuming, that this is how you make others join a room.

Why would you like to do it?

Often users share links like https://app.element.io/#/room/!xokVIsasdfasdfasd:example.com or even worse https://riot.im/#/room/!xokVIsasdfasdfasd:example.com. These rooms are not joinable by other clients and also often not joinable by Element or routing to a different instance, than the one you are on. This leads to an experience, where some users will be able to use the link fine and won't notice any problem, while a possibly small group can't use the link without knowing how to parse it.

One side effect is feature requests like this:

image

How would you like to achieve it?

There are a few different ways the url can be structured in the browser. Best case you just don't have any roomid in the url, just something like https://app.element.io/#/room should be enough for most web apps. If that doesn't fit in with some old design decisions, a possible alternative would be mangling the routing information after the room/ with some random salt, so that it doesn't work on other logins.

Handling incoming links like this would of course still need to be supported to not break matrix.to, but those should just be handled like redirects or so. Also sharing links the proper way should be obvious enough to not frustrate users. This will also degrade the experience for people using bookmarks to jump between rooms.

However I think the mistakes of sharing an applink instead of a matrix.to link happen too regularly and it is not obvious to a user, that this is not portable. So the benefit might outweigh the downsides here.

Have you considered any alternatives?

Maybe there is an easy way to override what url gets copied from the browser bar or something? That would probably be a better experience (if you could just make it copy a matrix.to url), but I don't think it is possible.

Additional context

As a developer of a different client I don't really want to hardcode several other clients internal routing schemes. I don't think that is very good for the Matrix protocol as a whole, but maybe you have good arguments to convince me otherwise?

Random issue with someone assuming this is the canonical way to share a room invite: #13247

Metadata

Metadata

Assignees

No one assigned

    Labels

    O-OccasionalAffects or can be seen by some users regularly or most users rarelyT-Enhancement

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions