Primary eng (and PM) emails
Summary
Let's clean up the DOM Attr interface to better align with DOM4. This takes us part of the way there.
Motivation
Aligning Attrs with the spec (which is good in itself) will enable lots of cleanup and simplification of Blink DOM.
Usage information from UseCounter
I'm removing:
isId (0.00%)
ownerElement (0.00%)
prefix setter (0.00%)
I'm deprecating:
specified (0.04%)
Compatibility Risk
Low, because these properties are rarely used. In terms of some other popular UAs: This basically makes Blink line up with Firefox, except for ownerElement, which is present but deprecated in Firefox. I assume WebKit matches the status quo in Blink. IE10 has everything except isId.
For reference, here's the relevant part of the DOM spec: <http://dom.spec.whatwg.org/#interface-attr>
Row on feature dashboard?
No. This is in the gubbins of ancient DOM inherited from WebKit etc.
Requesting approval to remove too?
Removals noted above. I assume we can't remove Attr.specified at 0.04%. WDYT?
Dominic
I can't seem to find prefix setter in the logs. I see it in the UseCounter.h enum. Do we have an off-by-one in our histogram mapping of enum to histogram name?
Also, what do you mean when you say you want to deprecate specified? Do you just mean logging a warning to the console? If so, can we make sure to log only the first time you use it in a page? Spamming the console is bad.
LGTM2
LGTM2
To close the loop here on the Gecko side, we decided that removing this attribute was a mistake. I just backed out the removal patch from our trunk tree and requested the patch to be approved for our aurora and beta trees, which means that Gecko will not ship the removal of this API.
.specified was needed in old IE where the attributes collection contained all the properties/webidl attributes. hasAttribute behaved the same way. .specified was the only way to detect if an attribute was present or not.
@Mike, can you confirm or deny if jQuery relies on `specified` even in modern browsers?
--
http://annevankesteren.nl/