From 4a0190b1bbf187865ca66aa2798e874e1230cda7 Mon Sep 17 00:00:00 2001 From: Qing An Date: Tue, 30 Aug 2022 18:13:43 +0800 Subject: [PATCH] Merge use case of issue 19 Related to #19 --- index.html | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) diff --git a/index.html b/index.html index 61504f7..6d8fa0e 100644 --- a/index.html +++ b/index.html @@ -436,8 +436,125 @@

Manage web storage and cookies

Browsers manage storage using APIs of a specific rendering engine. + + +
+

Define different types of WebViews

+
+
Submitter(s)
+
+ Niklas Merz, Apache +
+ +
Motivation
+
+ As more and more use cases are discussed, it might be helpful to define and name the different uses of WebViews. WebViews can be used in many different ways and some of them are vastly different in terms of privacy and security implications. It could be a good idea to separate them into different categories to discuss them better. +
+ +
Stakeholders
+
+
    +
  • Browsers vendors
  • +
  • App developers
  • +
+
+ +
Analysis
+
+ We can already see these different categories of WebViews with the APIs available on the two big mobile platforms. Android offers a powerful WebView API and Chrome Custom Tabs. iOS has WKWebView for a rich WebView API and SFSafariViewController for a more browser-like experience embedded in native Apps. +
+ The WebView APIs offer powerful features for example injecting JavaScript or other interactions with the pages loaded into the WebView. These features require the designers of the WebView APIs and App developers to think a lot about the security and privacy implications of their design choices. WebViews that allow the user to navigate the Web freely need to be much more secure and restricted than WebViews that just allow code under control of the App developers. +
+ WebViews are used a lot to build the UI or core features of Apps. These Apps could benefit from more control over the native parts of the App or vice versa the native code might want to have more control over the Web content. +
+ The distinction between browser-like WebViews and full WebViews embedded into Apps is the most obvious one but there are many more like we see with ePub and MiniApps. +
+ If there are different types of WebViews with different use cases and feature sets App developers could benefit from more freedom or security and privacy. Browser vendors could roll out powerful features for developers of Apps built around WebViews but still keep the browsers and browser-like WebViews secure. +
+ +
Related W3C deliverables and/or work items
+
+ N/A +
+ +
How is the issue solved in the Browser, and what’s more is needed?
+
+ WebViews and browsers currently always have the same features and restrictions. Different WebView implementations share different APIs to interact with the WebView content. +
+
+ +
+

Types of WebViews

+ + + + + + + + + + +
WebView Type + Name + Platforms + Description + Features + Limitations + UX flexibility + Usage Example +
Full-fledged WebViews + Android Webview + Android + Default WebView implementation on Android + Rich API with JS and CSS interaction, Tie WebView and native APIs together + Features equal to current Chrime but some Web APIs are not supported + Allows you to mix native content with the WebView and to resize it + Hybrid Frameworks (Cordova, Capacitor) +
WebViews for a browser-like experience in apps + Custom Tabs + Android + API for opening browser-like WebViews on Android + Browser navigation and conveniance features like password fill + App has no access to Web content + Covers the entire application with some minimal top bar customization + Link preview in social media Apps +
WebViews for a browser-like experience in apps + SFSafariViewController + iOS, iPadOS + API for opening browser-like WebViews on iOS + Browser navigation and conveniance features like password fill + App has no access to Web content + Covers the entire application with some minimal top bar customization + Link preview in social media apps +
+ UIWebView (deprecated) + iOS, iPadOS, macOS + Soon-to-be-removed WebView API of iOS + Rich API with JS and CSS interaction, Tie WebView and native APIs together + Some current Web standards not implemented. Performance and security wise inferior to WKWebView, deprecated + Allows you to mix native content with the WebView and to resize it + Hybrid Frameworks (Cordova, Capacitor) +
Full-fledged WebViews + WKWebView + iOS, iPadOS, macOS + Default WebView implementation on iOS + Rich API with JS and CSS interaction, Tie WebView and native APIs together Features similar to current Safari but some Web APIs are not supported + Allows you to mix native content with the WebView and to resize it + Hybrid Frameworks (Cordova, Capacitor) +
Full-fledged WebViews + WebView2 + Windows + Default WebView implementation on Windows + Rich API with JS and CSS interaction + + + +
+ +