- From: Majid Valipour <notifications@github.com>
- Date: Wed, 27 Apr 2016 08:38:04 -0700
- To: whatwg/dom <dom@noreply.github.com>
- Cc:
- Message-ID: <whatwg/dom/issues/23/215123846@github.com>
@birtles: > @wycats: @bzbarsky, @annevk and I discussed this in February this year and I think @bzbarsky in particular had a preference for adding another eventTime or time member given the compatibility concerns. I wish this was shared earlier. All other signals so far has been that Firefox is on-board with the plan to experiment and ship if we don't find a non-trivial compat issues. In fact originally we were [happy to wait](https://bugzilla.mozilla.org/show_bug.cgi?id=1026804#c8) for Firefox to ship and report on compat issue before we go ahead. @rniwa: > > However, since then Chrome has shipped with reportedly few issues so I was under the impression that this was proving to be Web-compatible and the extra member was not required. Well the list of reported issues is essentially the same as [before](https://github.com/whatwg/dom/issues/23#issuecomment-184702178) even after being in Chrome stable (on all platforms) for the past 6 weeks. IMHO this is very good evidence. Moreover the result matches our expectation based on the [httparchive data analysis](https://github.com/whatwg/dom/issues/23#issuecomment-181518064) we did before launch which is another good signal. > The very fact YouTube had to workaround this and Angular had to have a fix is a good indication that this change is not Web compatible. Just the issues listed in #23 (comment) are enough indication to us that we can't make this change in the foreseeable future. We have expected some web-compat issues all along, the question has always been the scale and the impact of such issues. We have attempted to get a sense of this by using httparchive and carefully monitoring beta, dev channels before launch and have continued this after going to stable. On YouTube case: They had an existing workaround for Firefox edgecases which works well for Chrome recent changes as well. So they haven't done any modification in response to a breakage. So there was no modification or impact. On Angular CSS Animation module: The scale and impact is quite low here. See detailed description of the issue. Happy to debate my evaluation of impact though. @wycats: Thanks for the writing [this](https://github.com/whatwg/dom/issues/23#issuecomment-214934566) up. It is a good summary of differences between browsers and main workarounds being used. I have some notes though: > for many events, the timeStamp is (interoperably) either the same as new Date() (as required by DOM3 and DOM4) or 0 (as allowed by DOM2). I have an [fairly accurate list](https://github.com/whatwg/dom/issues/23#issuecomment-186004726) of the Firefox behaviour. It is a mixed bag. For many events this is not true (including almost all input events): mouse, wheel, key, touch, click events, hashchange, popstate, any custom events > It's easy to observe that developers expect the result of e.timeStamp to return a value that looks like a JavaScript date, because date.setTime(e.timeStamp) is very common. It is actually very hard to get any reasonable signal from the above github search. I looked at the first 10 pages. Lots of false positive (timestamp not related to any event) and mostly dominated by a single [code snippet](https://github.com/cavemankent/firstpractice/blob/98fea70642307951641898bc9b4ec86ff5750167/c07/js/event-object.js) from a tutorial set. Not really indicative of any real usage. > any developer in the past who wanted to compare a timestamp to a fixed timestamp had no choice but to compare to Date.now(), and that code is both reasonable and often not very easy to fix. This is rather trivial to fix actually. (Use Date.now() in event handler than timestamp) Also how big of a usecase is this? Our httparchive search shows it is rather small. Finally this pattern has subtle [bugs](https://github.com/whatwg/dom/issues/23#issuecomment-181579384) and not very dependable even after Firefox workaround. > The TLDR is that until Chrome decided to make this change, the DOM spec had been increasing in precision, and browsers were coming into compliance. Coming into compliance since 2011 (DOM3) and we still don't have that. This is what worries me about introducing yet another timestamp attribute with a slightly different semantic. Now we will have two slightly in compliance values to take care an push forward in the platform not to mention the burden that it has on API complexity and long-term simplicity of the platform. It is this option that we have to weigh against web-compat issues. Compat issues that our data so far suggests them to be small in scale, easy to fix, low impact, and subtly broken already. We still have a good chance to make the switch without incurring the cost of two timestamp attributes. Finally, from Blink side we are happy to follow up with any new consensus on this issue. We have been active in pursuing this and have tried to help reach a reasonable inter-operable solution in good faith :). --- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/whatwg/dom/issues/23#issuecomment-215123846
Received on Wednesday, 27 April 2016 15:38:32 UTC