Definition of browser vs. WebView

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