- From: Predrag Stojadinović <predrag@stojadinovic.net>
- Date: Tue, 11 Feb 2014 18:05:44 +0100
- To: public-html@w3.org
- Message-ID: <CAMf3si6m4tsDfAoVdDrh=prj3Vk8_FKas=1-sqc3Zh9VG5Ejpg@mail.gmail.com>
1. The current Navigator object standard allows for the appName attribute to be either "Netscape" or the actual name and most major browsers just settle for this default. 2. The appVersion attribute is even worse because the definition requires that attribute to either be exactly "4.0", regardless of the actual browser version, OR a detailed string, which is the option that is of course chosen, and is thus cluttered with too much data. While, on the one hand, this additional data can be useful to some developers, the cluttering, on the other, makes it a nightmare to determine the actual browser and version which the code is being executed in. Especially when that data changes from one version to another like we recently had in the IE10 to IE11 upgrade where IE11 all of a sudden was being detected as a special version of Firefox. Based on the Navigator object<http://www.w3.org/TR/html5/webappapis.html#the-navigator-object>justification, which states: "*This section defines a collection of attributes that can be used to determine, from script, the kind of user agent in use, in order to work around these issues.*" it is rather surprising that the two, usually most interesting and sought after, pieces of information must be parsed and extracted from too much cluttered text, instead of being readily available on demand. Just to be clear, it is certainly better to use Modernizr and similar libraries to determine available features, however, it is up to the developer how they use the information obtained from the navigator object and if they create bad patterns based on the browser name and version than this really is on them. What developers do with this information is ultimately up to them, but if this is what they are actually after then it should be available. Therefore, since the appName and appVersion have been around for a while and are what they are, instead of changing them, I propose to introduce attributes browserName and browserVersion as following: readonly attribute DOMString browserName; readonly attribute DOMString browserVersion; window . navigator . browserName Must return the full name of the browser, e.g. "Chrome", "Firefox", "Opera", "Internet Explorer", "Safari", etc. window . navigator . browserVersion Must return the full version of the browser, e.g. "32.0.1700.107", "27.0", "11.0.9600.16476", "12.11", etc. Thanks. *Predrag Stojadinović* NVIDIA Europe, *Software Developer* http://www.nvidia.com <http://www.Stojadinovic.net>
Received on Tuesday, 11 February 2014 22:13:20 UTC