- From: Mike Taylor <miketaylr@google.com>
- Date: Tue, 6 May 2025 09:46:03 -0700
- To: Ashley Gullen <ashley@scirra.com>
- Cc: public-webview@w3.org
- Message-ID: <7163e3f4-4e41-41af-8b59-2f4a1e64d015@google.com>
On 5/6/25 8:54 AM, Ashley Gullen wrote: > 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). Categorizing "webview or not" via UA string seems like it falls apart in a scenario like "Chrome opened in kiosk mode", or any app using `setUserAgentString()` (or similar). Another thought: if the goal here to for traffic usage, do you consider traffic coming from iframes to be browser traffic, or webview traffic (given that users can't enter a URL into iframes). > > Any thoughts? > > Ashley
Received on Tuesday, 6 May 2025 16:46:11 UTC