jitsi / jidesha

A Chrome extension for Calendar integrations for Jitsi Meet
Apache License 2.0
135 stars 178 forks source link

Inline Installation API deprecation #41

Closed Ark74 closed 5 years ago

Ark74 commented 6 years ago

If I understood correctly the current inline installation process that Jidesha uses will be deprecated by September 2018.

https://blog.chromium.org/2018/06/improving-extension-transparency-for.html

Would this be a blocking issue for Jidesha?

damencho commented 6 years ago

We are aware of this. You can also follow: https://bugs.chromium.org/p/chromium/issues/detail?id=326740#c68 The inline installation will no longer work after the chrome changes, but the extension will still be able to be installed and used. If there are changes needed in jitsi-meet we will make sure everything works as expected. We expect that after the implementing the changes in the bug mentioned above, there will no longer be needed an extension.

Ark74 commented 6 years ago

Great to know! Thanks for the info. Please close this issue at your convenience.

thefallman commented 5 years ago

Would you consider to get rid of Chrome screen share extension at all? The chrome.desktopCapture.* API is getting more and more mature, so waht's the reason supporting 2 APIs which provide the same functionality?

saghul commented 5 years ago

This is already the case. If you use Chrome Canary you should be getting screen sharing without any extension.

roeycohen commented 5 years ago

@saghul that's great news! :)

in chrome 71, i've turned on the enable-experimental-web-platform-features flag, and clicked the "Share you screen" button at meet.jit.si, it still requires the extension...

also, currently lib-jitsi-meet project throws an error when trying to share the desktop. is there any documentation available about fixing the extension installation?

saghul commented 5 years ago

I believe this was fixed in 72, which is current stable, can you give that a try?

roeycohen commented 5 years ago

i'll try and let you know.

how about the docs? i'm using lib-jitsi-meet directly...

saghul commented 5 years ago

Sorry, I lied :-P 71 does not yet have getDisplayMedia in the right place. Even if you enable experimental web platform features, the extension is needed because we look for navigator.mediaDevices.getDisplayMedia which works only on >= 72.

Let me try a quick fix.

roeycohen commented 5 years ago

i've tried on canary 73 and it works really great, even for my project which uses lib-jitsi-meet directly :) now i just need a workaround for the next month... i'm getting the following error: 2019-01-02 12_45_14-devtools - localhost_lms42_ any ideas? may i should pass callback or something?

saghul commented 5 years ago

@roeycohen Give this patch a try: https://github.com/jitsi/lib-jitsi-meet/pull/851 with it, M71 with xperimental platform features enabled does not require the extension.

roeycohen commented 5 years ago

i've made the checked you've requested: the patch worked for me when activated enable-experimental-web-platform-features.

can you please direct me on how to solve the problem with the extension installation?

roeycohen commented 5 years ago

ok, i see there's a new parameter called: desktopSharingExtensionExternalInstallation i'll give it a try :)

damencho commented 5 years ago

@roeycohen When experimental-web-platform-features is disabled the extension installation should be working fine. Have you created an extension for your deployment, upload it to google webstore, verify the site and configure extension id in config.js?

roeycohen commented 5 years ago

@damencho the patch @saghul supplied did work with the flag, but my users aren't that sophisticated :) in order to continue working with the extension, i needed to add the following code:

let tracks = await JitsiMeetJS.createLocalTracks({
    devices: ['desktop'],
    desktopSharingExtensionExternalInstallation: {
        interval: 500,
        checkAgain: () => this.installWindow && !this.installWindow.closed,
        listener: (status, url) =>
        {
            switch (status)
            {
                case 'waitingForExtension':
                {
                    if (!this.installWindow || this.installWindow.closed)
                        this.installWindow = window.open(url, 'extension_store_window', 'resizable,scrollbars=yes,status=1');
                    else
                        this.installWindow.focus();
                    break;
                }
                case 'extensionFound':
                    this.installWindow && this.installWindow.close();
                    break;
                default:

                // Unknown status
            }
        }
    }
});
damencho commented 5 years ago

Yep, this is how it is supposed to work, jitsi-meet code seems similar I think: https://github.com/jitsi/jitsi-meet/blob/b7b43e8d9c582910aa043a522fbe1b19500c2b44/conference.js#L1492

roeycohen commented 5 years ago

yes, i've created this code based on the jitsi-meet project code. I wonder if updating the lib-jitsi-meet docs worth the effort when next month chrome 72 is released...

pedro-nonfree commented 5 years ago

What I have to change to recover in my own instance the previous funcionality (before inline installation): Clicking sharing desktop redirects user to the chrome web store, like I see in meet.jit.si

2019-01-23-035638_390x163_scrot

Related error in console:

[modules/RTC/ScreenObtainer.js] : Failed to install the extension from https://chrome.google.com/webstore/detail/[masked] TypeError: Cannot read property 'install' of undefined

2019-01-23-035825_392x86_scrot

damencho commented 5 years ago

@pedro-nonfree update to latest https://github.com/jitsi/lib-jitsi-meet/commit/75a556e3950dfc396d7aa8306b42de67f372e1cf

saghul commented 5 years ago

@damencho Do you think we can close this now?

damencho commented 5 years ago

Yep. The current inline installation code had been removed and this or next week we will update stable.

pedro-nonfree commented 5 years ago

@pedro-nonfree update to latest jitsi/lib-jitsi-meet@75a556e

@damencho I use debian repos deb http://download.jitsi.org stable/ I understand that in one week I can get the new version through an apt upgrade, right?

damencho commented 5 years ago

approximately, cannot give you an exact estimation. We need to deploy it on meet.jit.si first and then (after 2-3 days) we will push it to stable.

damencho commented 5 years ago

It is available now in stable.

pedro-nonfree commented 5 years ago

@damencho thank you so much, I tried it and works as expected!