W3C home > Mailing lists > Public > public-html@w3.org > February 2014

RE: Navigator standard change proposal

From: Predrag Stojadinovic <predrags@nvidia.com>
Date: Wed, 12 Feb 2014 10:47:27 +0100
To: "public-html@w3.org" <public-html@w3.org>, Travis Leithead <travis.leithead@microsoft.com>
Message-ID: <7DC9167CA73B39468DFA1D07FF67A6A851D4FFD184@DEMAIL01.nvidia.com>
I wouldn't say it encourages so much as it enables browser detection which is what the purpose of the Navigator object actually is.

Instead, it seems that You would rather keep the Navigator object obfuscated and thus completely useless in order to protect Your product?

I honestly do not understand the issue You are trying to invent here?

·         What is gained by not allowing web developers to detect the browser which their code is going to be executed in?

·         Why is such detection implied to be "bad behavior"?

·         What is gained by protecting browsers that do not provide established standards?

o   And why is that somehow more important than allowing developers to have control over the user experience?

·         What is gained by not allowing the developers to inform their users that some of the state of the art features will not be available and that they should install another browser in order to have them?

All of the above is what drives the increasing quality of the various products at hand. At least it should be.

If IE was not subpar then it would not have been, as you put it, "targeted" by browser detection.
I understand that You work for Microsoft and thus feel the need to provide special protection for IE, but I would frankly suggest that it would be much better if this energy was targeted towards improving IE rather than towards stalling development and making developers’ lives a living hell whenever they want their state of the art JavaScript web applications to also work in IE.

Please provide justification for Your claim here?
The "Ipse dixit" approach is really not useful.

I honestly hoped for objective comments on this topic, and not the expressions of company loyalty. Please.

The Navigator object standard is, to put it mildly, a complete mess and really has to be fixed.
For example, the appCodeName and product attributes are completely useless. They each have one single fixed predefined value, so what’s the point of even querying them?
The appName and appVersion attributes are a little better for introducing the OR alternatives but their definitions also must be improved because the first half of each is as meaningless as the above.

And as I stated in my original suggestion, the most sought after information is completely obfuscated and hidden for no security or any other objective reason.

Can we please focus on the purpose and quality of the Navigator object standard and not on any one particular browser agenda? Please.



Predrag Stojadinović  |  T +49.2405.4.78246  |  predrags@nvidia.com<mailto:predrags@nvidia.com>
NVIDIA GmbH, Adenauerstr. 20 A4, 52146 Würselen, DE  |  http://www.nvidia.de<http://www.nvidia.de/>

On Tue, Feb 11, 2014 at 11:31 PM, Travis Leithead <travis.leithead@microsoft.com<mailto:travis.leithead@microsoft.com>> wrote:
Doesn’t this encourage browser detection? I’m sensitive to this topic since IE has been the target of substantial browser detection in the past, and I don’t want to encourage this kind of behavior in the future (for any browser)…

We should also keep in mind that there are other UAs besides browsers…

From: stojadinovicp@gmail.com<mailto:stojadinovicp@gmail.com> [mailto:stojadinovicp@gmail.com<mailto:stojadinovicp@gmail.com>] On Behalf Of Predrag Stojadinovic
Sent: Tuesday, February 11, 2014 9:06 AM
To: public-html@w3.org<mailto:public-html@w3.org>
Subject: Navigator standard change proposal

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.


Predrag Stojadinović
NVIDIA Europe, Software Developer

NVIDIA GmbH, Wuerselen, Germany, Amtsgericht Aachen, HRB 8361
Managing Director: Karen Theresa Burns

This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.

(image/png attachment: image001.png)

Received on Wednesday, 12 February 2014 14:17:21 UTC

This archive was generated by hypermail 2.3.1 : Thursday, 29 October 2015 10:16:37 UTC