Inline installation of chrome extensions removed after Chrome v71


#1

Hi all,

May be you’re aware of removing Chrome’s inline install functionality of extensions (already marked as deprecated) after the version 71.
Here is the topic: https://blog.chromium.org/2018/06/improving-extension-transparency-for.html

I tested with the latest version of jitsi at beta.meet.jit.si with recent version of chrome (>71) and the fresh installation. The installation fails without redirecting to the extension’s web page as fallback.

Is there any patch in progress ? I can’t find anything about this on github.com/jitsi

Thanks


#2

We had added support getDisplayMedia https://github.com/jitsi/lib-jitsi-meet/commit/9f123f34264bea52feb6efe25fa2f6a5876f1116, we were using some early chrome version when this was still under experimental and it seems it was changed at some point and it is currently not working at the moment. I’m currently fixing it and will let you know when this is fixed.


#3

This was the move that we missed https://github.com/w3c/mediacapture-screen-share/pull/86


#4

Thanks damencho,

This is how i hacked the thing, just removed inline install part for Chrome so it will behave as Opera etc…
Now it will open a popup window and after adding the plugin it will close and will manage to show screenshare dialog

                 /* eslint-enable no-alert */
             }
+            this.handleExternalInstall(options, streamCallback,
+                failCallback);
 
-            // for opera there is no inline install
-            // extension "Download Chrome Extension" allows us to open
-            // the chrome webstore and install from there and then activate our
-            // extension
-            if (browser.isOpera()) {
-                this.handleExternalInstall(options, streamCallback,
-                    failCallback);
-
-                return;
-            }
-
-            try {
-                chrome.webstore.install(
-                    getWebStoreInstallUrl(this.options),
-                    arg => {
-                        logger.log('Extension installed successfully', arg);
-                        chromeExtInstalled = true;
-
-                        // We need to give a moment to the endpoint to become
-                        // available.
-                        waitForExtensionAfterInstall(this.options, 200, 10)
-                            .then(() => {
-                                doGetStreamFromExtension(
-                                    doGetStreamFromExtensionOptions,
-                                    streamCallback,
-                                    failCallback);
-                            })
-                            .catch(() => {
-                                this.handleExtensionInstallationError(options,
-                                    streamCallback, failCallback);
-                            });
-                    },
-                    this.handleExtensionInstallationError.bind(this,
-                        options, streamCallback, failCallback)
-                );
-            } catch (e) {
-                this.handleExtensionInstallationError(options, streamCallback,
-                    failCallback, e);
-            }
+            return;
         }
     },

#5

Actually it should go here: https://github.com/jitsi/lib-jitsi-meet/blob/9f123f34264bea52feb6efe25fa2f6a5876f1116/modules/RTC/ScreenObtainer.js#L170
using getDisplayMedia without any extension.


#6