mattermost-community / mattermost-plugin-jitsi

Jitsi plugin for Mattermost :electric_plug:
Apache License 2.0
195 stars 90 forks source link

What happens *exactly* when clicking on "Join Meeting"? #171

Open pandel opened 3 years ago

pandel commented 3 years ago

Hi!

Sorry for the somewhat strange question. I try to describe what I want to know and why:

(We use Mattermost desktop client under Windows. Plugin Version 2.0.0)

In our environment different browsers are being used for different use cases. The browser that should start for a single use case is being controlled via different URL protocols, i.e. http:// and https:// open (an extremely cut down version of) Firefox for normal web browsing, videochat:// opens Chrome (but only single destination, no general web browsing allowed here), and some other do other things... I won't discuss why it is done like this, because we are not able to change this behaviour.

Keep in mind, we are using the current (v4.6.1) desktop client.

Now, if I setup "Jitsi Server URL" under plugin settings to contain https://our.jitsi.server it opens Firefox (under which video chat won't work), but if I set it to videochat://our.jitsi.server nothing happens, although videochat is registered as own URL scheme under Mattermost settings and opens Chrome under normal circumstances (via link inside message i.e.).

I know that it should work: as a test, I a) copied the link URL which was created via the plugin and b) re-post it as a normal Mattermost message, c) click on the resulting message link and d) Boom! Chrome starts and everything is fine.

And even more strange, if I don't use the desktop client but i.e. Firefox as Mattermost client, the plugin works as expected: "Join Meeting" starts the Chrome browser via the videochat://URL Protocol.

So, I try to understand, why the "Join Meeting" button won't react to the videochat:// based link, but to the https:// one inside the desktop client. I already tried to find the solution in the plugin source (and messed around with the meetingLink), but as I have nothing to do with Mattermost plugin development I don't quite understand the complete mechanism to make changes for my needs. I assume it might have something to do with onClick={this.openJitsiMeeting} in post_type_jitsi.tsx, but, you know...

Perhaps you can lead me into the right direction.

Many thanks and regards, Holger

larkox commented 3 years ago

In theory, when you click the link, it checks if it should open the meeting embedded, or in a new window. If it has to open the meeting in a new window, it should just open a new window (using window.open(meetingLink, '_blank'). That is all the plugin does. Does this bring some light to the matter?