Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Ons or Extensions with WebView2 #98

Closed
douglas-jordan opened this issue Jan 11, 2020 · 66 comments
Closed

Add Ons or Extensions with WebView2 #98

douglas-jordan opened this issue Jan 11, 2020 · 66 comments
Labels
feature request feature request tracked We are tracking this work internally.

Comments

@douglas-jordan
Copy link

douglas-jordan commented Jan 11, 2020

Are browser addons/extensions disabled and or cannot be installed when running WebView2?
I have searched the command line options and this "--disable-component-extensions-with-background-pages" is part of the options when using WebView2 but not when running Edge from the desktop icon (dev) (seen with process explorer). Note I do not have any command line arguments specified when creating the environment.

Is there an option or way to install or enable AddOns/Extensions when using WebView2?

AB#27228257

@pagoe-msft
Copy link

Hi douglas-jordan,

Thank you for your feedback! We currently do not support extensions in WebView2. Is this a feature you would like to see in further iterations of WebView2?

@pagoe-msft pagoe-msft added the feature request feature request label Jan 13, 2020
@douglas-jordan
Copy link
Author

Hi douglas-jordan,

Thank you for your feedback! We currently do not support extensions in WebView2. Is this a feature you would like to see in further iterations of WebView2?

Yes definitely, not sure why you would not. I can see no extension support being an issue as the customer expectation is to be able to do whatever can be done in a typical browser. Thanks.

@pagoe-msft
Copy link

Hi douglas-jordan,

As a developer, would you like to ship an application that includes an extension that is available on Edge? Or, would you like users of your application to be able to download an extension in the WebView the same way they could on their normal browser?

@douglas-jordan
Copy link
Author

Hi douglas-jordan,

As a developer, would you like to ship an application that includes an extension that is available on Edge? Or, would you like users of your application to be able to download an extension in the WebView the same way they could on their normal browser?

It has been our experience in the past that the customer always wants what you don't have and there are some extensions that are a must have. We do not plan to BYO Edge or include extensions, but given the use of modern technology, the users will want extensions.

The user should be able to load their own extensions or use others already available the same way as a typical browser.

@pagoe-msft
Copy link

Got it! We most likely won't have extension support for our first official release, but it is something we are looking into. If you can, could you describe what you are building with WebView2?

@douglas-jordan
Copy link
Author

Got it! We most likely won't have extension support for our first official release, but it is something we are looking into. If you can, could you describe what you are building with WebView2?

We have an existing software suite which supports display of URLs for automated presentation/signage and has supported IE with the WebBrowser Control and has long needed a modern way to render URLs. We have already released out to customers with Edge WebView2 support for field testing with positive results and continue to await an Edge release which supports an up to date SDK.

@FireCubeStudios
Copy link

I too would like users to download extensions support in web
view 2

@JoshuaWeber
Copy link

@FireCubeStudios We are evaluating what supporting extension in WebView2 would look like. Can you help me understand what your app using WebView2 is doing, and how you see extensions being used in your app?

@FireCubeStudios
Copy link

I actually have 2 apps that can use this.

one is a simple web browser and adding support for extensions would be good for a web browser. especially since not having extensions support can be a no dealer for many people

in the other app I can utilize the translator, Grammarly and maybe the dark mode extension because the webview2 is being used for a lot of typing.

@KidCoconuts
Copy link

For similar reasons to @FireCubeStudios , I'd like to see extension support also

@PassivePicasso
Copy link

I opened up a similar request on the samples repo.
https://github.com/MicrosoftEdge/WebView2Samples/issues/39

it would be helpful for communications software which often require extensions to function completely, as browsers can't handle activities such as screen sharing currently.

@FireCubeStudios
Copy link

in addition to this adding ipfs protocol support which requires an extension and isnt built in by browsers /webview

@darianmiller
Copy link

@FireCubeStudios We are evaluating what supporting extension in WebView2 would look like. Can you help me understand what your app using WebView2 is doing, and how you see extensions being used in your app?

I'd like to use the LastPass browser extension within WebView2 as a custom browser but using commercial extensions such as LastPass.

@dhoelzl
Copy link

dhoelzl commented Nov 27, 2020

Our purpose for this would be using native messaging in WebView2. This would be a uniform way of communication between (almost) any web browser on (almost) any platform with a native application. Otherwise an extra implementation over window.chrome.webview.postMessage would be required for WebView2.

@danielismo
Copy link

Hi! I As a developer, would like to ship an application that includes an extension that is available on Edge. Is It possible right now? Or any workaround? I developed my app but i need to deploy It with an Oracle extension.

Thanks in advance.

@Kay-Burchardt
Copy link

Hi, I'm a developer for SAP Business Client. We are also very interested in the support of extensions in the WebView2. For instance, one of our customers, a leading automobile maker, would like to use SAP Business Client with the integrated WebView2, but is currently unable to do so, because he needs a specific 3rd party browser extension.

@benark
Copy link

benark commented Mar 13, 2021

+1 for extension support with WebView2. We are converting over our apps that rely on an embedded browser component to WebView2 and our staff are longing for support for their essential extensions like LastPass.

@olegchensky
Copy link

Example: It is not possible to use saved Geo-Locations on the WebView2 Start. It will be always used current location. Only after switch it in Sensors the fixed location will be accepted (bug?).
In this case we want to use some Extensions like "Location Guard" which solved this problem.

@julianbutt
Copy link

Hi, I'm a developer for SAP Business Client. We are also very interested in the support of extensions in the WebView2. For instance, one of our customers, a leading automobile maker, would like to use SAP Business Client with the integrated WebView2, but is currently unable to do so, because he needs a specific 3rd party browser extension.

+1 for this too - As a SAP customer we also are really interested in this feature. Specific functionality that we use (via a SAPGUI integration) requires a browser extension in a WebView2 window. With Internet Explorer coming to EoL this year the switch to Edge based browsers will become a requirement and therefore leave a gap in functionality for us.

@jdnarvaez
Copy link

We would also like to be able to leverage extensions in WebView2 (mainly for redirecting web content on Citrix to a client device).

@apurvabhansali
Copy link

+1 for extensions. We have an application that wants to display a page from our server and this page will prompt the user for biometric authentication. Using our extension and native messaging app, we are able to capture the biometric template and send to our server for authentication. Our preference would be that the extension is installed in the browser and the webview2 would use the browser installed extensions by default.

@AndrewMore1
Copy link

+1 for extensions. In my use case I'm opening the DevTools, and there are debugging tools for AngularJS that are available as extensions that I cannot get access to in the WebView2 control.

@taylore-msft
Copy link

taylore-msft commented Jul 21, 2021

I opened up a similar request on the samples repo.
https://github.com/MicrosoftEdge/WebView2Samples/issues/39

it would be helpful for communications software which often require extensions to function completely, as browsers can't handle activities such as screen sharing currently.

@PassivePicasso I’m doing research about how we can implement support for extensions in Webview2.

After reading your comments from this thread, thread 306, and doing research on the Cisco Jabber SDK extension, it seems like you’re envisioning a process where WebView2 developers can programmatically add extensions to webviews so certain extensions are available to end-users by default, rather than giving end-users the ability to install extensions onto the webviews themselves. Is this correct?

@jdnarvaez
Copy link

I opened up a similar request on the samples repo.
https://github.com/MicrosoftEdge/WebView2Samples/issues/39
it would be helpful for communications software which often require extensions to function completely, as browsers can't handle activities such as screen sharing currently.

@PassivePicasso I’m doing research about how we can implement support for extensions in Webview2.

After reading your comments from this thread, thread 306, and doing research on the Cisco Jabber SDK extension, it seems like you’re envisioning a process where WebView2 developers can programmatically add extensions to webviews so certain extensions are available to end-users by default, rather than giving end-users the ability to install extensions onto the webviews themselves. Is this correct?

I do think it would be extremely beneficial if developers could programmatically add them, but I'm unsure if I think that should be the only way extensions are surfaced when using WebView2.

@PassivePicasso
Copy link

I opened up a similar request on the samples repo.
https://github.com/MicrosoftEdge/WebView2Samples/issues/39
it would be helpful for communications software which often require extensions to function completely, as browsers can't handle activities such as screen sharing currently.

@PassivePicasso I’m doing research about how we can implement support for extensions in Webview2.

After reading your comments from this thread, thread 306, and doing research on the Cisco Jabber SDK extension, it seems like you’re envisioning a process where WebView2 developers can programmatically add extensions to webviews so certain extensions are available to end-users by default, rather than giving end-users the ability to install extensions onto the webviews themselves. Is this correct?

Yes that's correct. I do think it would be ideal if this were designed in a way that wouldn't prevent application developers from allowing end users to add and remove extensions by providing the necessary user interfaces.

@douglas-jordan
Copy link
Author

The only item I can think of for an API to address extensions for our application would be to allow enable/disable of installing or deleting extensions and an interface to remove or disable specific extensions. In our application the user would load whatever they need and we could provide a webview to allow them to go to the URL of choice to load the extensions.

@apurvabhansali
Copy link

Why not address it like IE11 with ActiveX. If the ActiveX is installed in IE11 then the WebBrowser control rendered pages can access the ActiveX. Likewise, if a user installs the extension in Edge Chromium then make it installed in WebView2. Our site does MFA authentication and needs our extension and native messaging app to talk to hardware on the PC. We have detection logic in our page to check for our extension and if it is not installed we prompted to user to click a link to the chrome store from where he can install it. Following my suggestion would allow for the same flow even if the page is rendered in a WebView2. A developer may not know what extensions need to be installed.

Take the case of a .Net app that implements SAML for login and redirects the SAML to the IDP's login page. This could be any IDP (like our site) and the developer of the .Net app would not know to install OKTA's extension or ours or any other IDP. It would be up to the user of the system to install that into Edge Chromium for the IDP he is using. This works right now if the .net app uses WebBrowser control and the IDP provides and ActiveX for IE11.

I do understand the suggestion where it would be nice for the developer to force installation of an extension he knows he wants, so maybe a way where the default is to use all edge chromium installed extensions with a mechanism for a developer with a specific use to override that and specify exactly what extensions they want.

@FireCubeStudios
Copy link

I need this for my browser app

@muznyo
Copy link

muznyo commented Jan 16, 2022

Yes please, I want extensions too so my upcoming browser app supports it!

@bilou47190
Copy link

Idem, je cherche aussi à mettre les extensions, surtout adblock.

@tomgao365
Copy link

I am a front-end developer, for example https://github.com/tauri-apps/tauri is using webview2.
vue.js developers need Vue.js devtools

@apurvabhansali
Copy link

@taylore-msft Is there an update on how the implementation of extensions in WebView2 is being done and the timeframe? Today we encountered the case for allowing users to select the extensions that WebView2 will use like IE11 does with ActiveX w/IWebBrowser2.

We are the developer of a SAML Identity Provider (IDP). We configured our Office365/AzureAD tenant to do Federated SAML authentication with IDP for login. Our IDP uses our own extension to do biometric authentication allowing you to do biometric authentication to login to Office365. From office365.com loaded in the Edge browser, we have no issue, this works fine. But when using Teams or Outlook, the Teams or Outlook app will invoke a WebView2 control and redirect to our IDP for authentication. Here our extension is not loaded and authentication can not be done using the biometric.

Have you guys thought about this more and how would this be solved? We are not the developer of Teams or Outlook (obviously) so if extensions can only be loaded programmatically by the app developer, then we have no way of having this SAML Authentication work with WebView2 based apps. Do the same thing using an app that uses IWebBrowser2 and it works fine (using our ActiveX control loaded in IE11).

@mjpalazzo
Copy link

Please provide a date when WebView2 will support extensions. Thank you!

@Viaro-Brayan-Aguirre
Copy link

Please we need this feature. This enables a lot of posibilites!

@champnic champnic added the tracked We are tracking this work internally. label May 10, 2022
@brz
Copy link

brz commented Oct 27, 2022

Any updates on this matter?

@david-ps
Copy link

david-ps commented Nov 6, 2022

@champnic Can you please provide an update on this issue?

@champnic
Copy link
Member

champnic commented Nov 9, 2022

@nishitha-burman or @Syul968 should have more insight on the current status.

@ZanzyTHEbar
Copy link

wouldbe nice to use react dev tools extension for developing webView2-based applications with frameworks like tauri

@lundmikkel
Copy link

We would like to use extensions to help the developer experience. We have an Angular app shown in a webview, but we can't use any browser extensions to facilitate development, e.g. Redux DevTools or Angular DevTools.

@AdPipino
Copy link

I would like to use extensions to apply Dark Mode and Translate Pages without having to reload them.
Translate Web Pages - https://github.com/FilipePS/Traduzir-paginas-web
Turn Off the Lights™ - https://www.turnoffthelights.com

@kirillPshenychnyi
Copy link

Is there any ETA available? CefSharp and DotNetBrowser claim to support extensions already. But CefSharp is really buggy and DotNetBrowser is not free.

I need Windows Accounts extension.

@sanujbhatnagar
Copy link

We are working on office add-in with react, not able to add react dev tools in webview is not a good idea.
Why did you supported using js framework when you can't really support adding debugger dev tools for framework for debugging?

@llehn
Copy link

llehn commented Jun 23, 2023

Is there any ETA available? CefSharp and DotNetBrowser claim to support extensions already. But CefSharp is really buggy and DotNetBrowser is not free.

I need Windows Accounts extension.

Windows Logins are already supported, use this:

coreWebView2Environment = await CoreWebView2Environment.CreateAsync(
    webView2Path,    
    userDataFolder,
    new(allowSingleSignOnUsingOSPrimaryAccount: true));

@nishitha-burman
Copy link
Collaborator

Hello,

The experimental extensions APIs are now available to try. Please let us know if you have any feedback.

Thanks!

@Tom21200
Copy link

Hello, I don't think I should post this here but, I do not know how to use this to make my WebView2 control work in vb.net, so far I have "CoreWebView2BrowserExtension.EnableAsync(true)" but it doesn't work because of something or I don't know I'm a bit lost. Thanks

@champnic
Copy link
Member

To use these APIs you'll need the SDK version 1.0.1988-prerelease+, and a runtime version 117.0.1988.0 or newer. The Microsoft Edge Canary or Dev channels should be new enough:
https://docs.microsoft.com/en-us/microsoft-edge/webview2/how-to/set-preview-channel

@jmdurant
Copy link

jmdurant commented Aug 10, 2023 via email

@champnic
Copy link
Member

@jmdurant We do have some example code here:
https://github.com/MicrosoftEdge/WebView2Samples/blob/main/SampleApps/WebView2APISample/ScenarioExtensionsManagement.cpp

And API Design Doc here:
https://github.com/MicrosoftEdge/WebView2Feedback/blob/main/specs/Extensions.md

Although it looks like the sample app is missing some files so I'm doubtful it currently works. I've opened a bug on our side to fix that. But in the meantime you should be able to look at the source code to get a sense of how to use the APIs.

@victorhuangwq
Copy link
Collaborator

As per @champnic's comment on #191

@ajtruckle @kiddliu Please use this issue to track the Extensions API. It's available for testing as an Experimental API using prerelease SDK. And it looks like it just got promoted to stable, so should be available with runtime version 120 and the next release SDK at the beginning of December.

I will be closing this issue - do use issue 191 to continue discussion about the feature request, or ask questions in https://github.com/MicrosoftEdge/WebView2Feedback/discussions

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request feature request tracked We are tracking this work internally.
Projects
None yet
Development

No branches or pull requests