W3C Proposes the Creation of a WebView Community Group
lists.w3.org
lists.w3.org
With webviews however, that model doesn't make much sense: the embedder is controlling the webview and frequently needs to apply or enrich the embedded view. Browsers (which by and large maintain these webview APIs) have no incentive to stray from the web model of security though: they have no use for it themselves and it creates new vectors for security breaches in them. So I wonder how much a community group can affect.
[1] I build a browser for devs which uses webviews, https://polypane.app
> With webviews however, that model doesn't make much sense: the embedder is controlling the webview and frequently needs to apply or enrich the embedded view.
This isn't necessarily the case - it's certainly often been the assumption, but I don't think maintaining status quo here is a self-evident good.
Common case: I click a link in an email client / social media feed and it opens in a webview controlled by that app. It's a 3rd-party link either sent to me by an email contact, or posted by some private individual using the social media platform: it's not necessarily owned/controlled by the developer of the app, and as a user, I have no strong desire for the app to have direct access to that content.
The iframe comparison fits quite well in my mind, and most of the concerns / ideals hold true.
How do you restrict one use case and not another? If a restriction is opt-in in a standard it's not useful.
Here's their charter: https://github.com/WebView-CG/charter/blob/main/charter.md
This reminds me, back when I used to do app security, one of the issues with webviews was that some apps would hide much of the UI that users are used to seeing in browsers to make security decisions. So if an attacker could, via some vulnerability, redirect the site being viewed in the webview to one of their choosing, the user wouldn't be any the wiser.
I think it would generally be better if webviews, by default, have restricted navigation, and the developer has to deliberately whitelist domains they wish to view in it. Rather than having to write a navigation delegate or similar to implement their own whitelist, which most developers won't bother with.
Signed software from your VPN provider isn't enough?
What type of attack, theoretical or otherwise, are you avoiding?
Because it is bloated, more complicated, and require an insane amount of preparation to get started in a cross-platform fashion, specially for windows: https://docs.microsoft.com/en-us/microsoft-edge/webview2/get...
Then you understand why nobody wants to deal with that stuff and choose lowest common denominator (electron)
Just look at what you have to do to get started with WebView2 on windows
Hopefully this community group will lead to a better story for webviews in desktop software
In 2000 we were already delivering software using Webviews like MSHTML or KHTML.
• WKWebView (iOS, macOS): https://github.com/WebKit/webkit/blob/main/Source/WebKit/UIP...
• Android WebView: https://android.googlesource.com/platform/frameworks/base/+/...
• Mozilla GeckoView: https://github.com/mozilla/gecko-dev/tree/master/mobile/andr...
• Chromium Embedded Framework (CEF): https://bitbucket.org/chromiumembedded/cef/src/master/
The main ones that aren't open source are the Windows WebView and WebView2 components.
https://doc.qt.io/qt-6.2/qtwebengine-features.html
There is an API and python bindings. Falkon and qutebrowser (possibly others) use it for their browser engine. It uses Chromium code underneath.
Now if just Qt for WebAssembly[1] would support it we could go full circle...
Why is that one ‘official’ or the main candidate?
> they use webkit wich leads to platform specific bugs
Doesn’t the Microsoft one have platform-specific bugs as well?
It is like telling there should only exist one browser.
At any rate there's also JCEF, again for JVM apps.
https://github.com/JetBrains/jcef
It embeds Chromium.