- From: Ashley Gullen <ashley@scirra.com>
- Date: Tue, 6 May 2025 16:54:04 +0100
- To: public-webview@w3.org
- Message-ID: <CAABs73jTLi8FwW4oN7xbLTjPG26dTCwLkUtTH1o048qFstZ-ZA@mail.gmail.com>
Hi all, At our last WebView CG meeting I volunteered to help work on the definition of a browser vs. webview, which quickly led to my promotion to lead on the topic, so... here we go! I've had a think and I want to come up with a simple definition that can easily be used to determine whether something is a webview, without referencing specific technologies (e.g. the Android Webview). I think this might be a good definition: - If the user can enter their own URL to navigate to, then it is a web browser. - If the user cannot enter their own URL to navigate to, then it is a webview. So based on this definition: - Naturally the major browsers like Chrome, Safari and Firefox are web browsers, as you can enter your own URL to navigate to. - Web content embedded in apps, such as Cordova apps, count as a webview as there is no user interface to enter your own URL to navigate to. These use cases involve showing a fixed selection of web content determined by the app developer, and may well block navigating to the open web for security reasons. - If an app embeds a webview, but adds a user interface to allow users to enter their own URL to navigate to, then it qualifies as a web browser. I think someone mentioned the DuckDuckGo browser does this, and assuming it has a URL bar, then it is a browser under this definition - In-app browsers like Android Custom Tabs and SFSafariViewController qualify as webviews, since (as far as I can tell) the user cannot edit the URL in this mode to browse to a different website. Despite having many of the features of a web browser, it works like showing the same content in a dismissable webview (which AFAIK is in fact often what apps did prior to the introduction of in-app browsers), so I feel like this is still an appropriate categorisation. Where the in-app browser provides an option to open the viewed page in the actual browser app (e.g. 'Open in Chrome browser' on Android), under this definition it will switch the user from a webview to a browser, as in the browser they can then edit the URL. It should be easy to tell with this definition: basically if you can type in a URL, it's a browser, otherwise it's a webview. This should then be a basis on which to categorise things like usage stats for browsers vs. webviews. The user agent string does not reliably tell you if there is an editable URL bar, but it gives us a basis from which to categorise the different user agent strings that are observed in the wild, such as DuckDuckGo Browser (browser) and Facebook in-app browser (webview). Any thoughts? Ashley
Received on Tuesday, 6 May 2025 15:54:19 UTC