element-hq / element-hq/element-web

Open matrix.to link in existing browser tab I already have open with Element

Open
#16,899 3 comments 2 reactions 0 assignees View on GitHub
A-Matrix.to O-Occasional S-Minor T-Enhancement Z-AccountResurrection
Dominant language
TypeScript
Stars
13.5k
Forks
2.8k
PR merge metrics
PR metrics pending

Description

*Issue originally opened at https://github.com/matrix-org/matrix.to/issues/198*

**Is your feature request related to a problem? Please describe.**

When I go through the matrix.to link flow for a permalink, it asks me whether I want to continue via browser or desktop app. I use Element in my browser and already have a tab open. When I press `Continue in browser`, it opens yet another tab of Element to show the message.

![](https://user-images.githubusercontent.com/558581/108482165-c1de5d80-725e-11eb-96ce-6a323e76fd3b.png)

**Describe the solution you'd like**

Open the permalink in my existing tab of Element instead of a new one which takes forever to load.

When Matrix.to sends you off to `app.element.io`, we could use some of the cross-tab communication in browsers and have a script run at the very beginning of page-load which would communicate the permalink location to the other tab instance and close itself.

**Describe alternatives you've considered**

Copy paste the permalink and use the `/goto https://matrix.to/#/!xxx:matrix.org/$oIfQnLVKFwRE_Rme0Z5AvqzaYvHTuTtxqBYnnbR1yN8` slash command in your Element instance.

Or just use the desktop app which will always point to one instance.

**Dev notes**

There are multiple ways we can communicate but I was thinking of using [broadcast channels](https://developer.mozilla.org/en-US/docs/Web/API/Broadcast_Channel_API). Here is a nice concise video where I was introduced to it: https://www.youtube.com/watch?v=kBut8LqVgYE. To be clear, I was thinking of doing the communication on the `app.element.io` side. Matrix.to -> New `app.element.io` page that posts to the broadcast channel (BC) right when it starts up(before the main app loads at all) of where we need to go and closes -> my existing Element tab picks up that information from the BC goes to the place.

Other ways from a quick Google: https://blog.bitsrc.io/4-ways-to-communicate-across-browser-tabs-in-realtime-e4f5f6cbedca

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.