Is your feature request related to a problem? Please describe.
On the desktop, an embedded browser only exists on .net45 and it is using an old version of Internet Explorer.
We need an embedded browser that:
- also work on .Net Core on Windows
- uses Edge as the actual engine (Edge is needed to satisfy the Fido scenario)
This browser is WebView2.
Stream of work:
@henrik-me @jmprieur to review the stretch goals.
Technical aspects:
You can use GetAvailableCoreWebView2BrowserVersionString/CoreWebView2Environment.GetAvailableBrowserVersionString to detect if a compatible version of the browser or runtime is installed.]
How can we disable:
o The context menu
CoreWebView2Settings.AreDefaultContextMenusEnabled]
o The developer tools (F12)
CoreWebView2Settings.AreDevToolsEnabled]
o The go back / go forward keys
I don’t think we have a way to do this one.]
Is there an equivalent to WebBrowser.DocumentTitleChanged and WebBrowser.Title ?
[davris: Yes DocumentTitle and DocumentTitleChanged]
Is your feature request related to a problem? Please describe.
On the desktop, an embedded browser only exists on .net45 and it is using an old version of Internet Explorer.
We need an embedded browser that:
This browser is WebView2.
Stream of work:
Refactor current WebBrowser implementation to extract out marshalling to UI thread and maybe hosting in a panel
Add a WebView2 implementation of embedded browser on .NET Fx and .NET 5 https://docs.microsoft.com/en-us/microsoft-edge/webview2/gettingstarted/win32. Currently thinking it should go in the box with .NET Fx.
Change the WebUiFactory to prefer WebView2 if it is installed
Docs and log messages to tell ppl how to install WebView2
(Stretch goal) Add an
WithEmbeddedWebViewOptionsto MSAL that exposes an enum stating "PreferredBrowser" with values - Auto (default) - which means automatic fallback to WebBrowser, WebView2, LegacyWebBrowser.(Stretch goal) Change MSAL.Desktop to add support for WebView2 on .net core 3.1. We should have 1 method that pull in all the MSAL.Desktop functionality, smth like
.WithDesktopFeatures()Goal for MSAL 5 - review the default browser selection. For example for B2C we should no longer allow LegacyWebBrowser as it is unusable.
@henrik-me @jmprieur to review the stretch goals.
Technical aspects:
You can use GetAvailableCoreWebView2BrowserVersionString/CoreWebView2Environment.GetAvailableBrowserVersionString to detect if a compatible version of the browser or runtime is installed.]
How can we disable:
o The context menu
CoreWebView2Settings.AreDefaultContextMenusEnabled]
o The developer tools (F12)
CoreWebView2Settings.AreDevToolsEnabled]
o The go back / go forward keys
I don’t think we have a way to do this one.]
Is there an equivalent to WebBrowser.DocumentTitleChanged and WebBrowser.Title ?
[davris: Yes DocumentTitle and DocumentTitleChanged]