[webkit-dev] Is vendor-prefixing JavaScript APIs a waste of time?

Charles Pritchard chuck at jumis.com
Sat Jul 9 13:46:10 PDT 2011

ArrayBuffer has gone [mostly?] without vendor prefixing,
CSS transforms and RAF (requestAnimationFrames) went with.

createObjectUrl has been touch-and-go.

As a dev, I look at RAF and CSS transforms and wonder why vendors couldn't
agree to those two ahead of time.

Then there is createObjectUrl and ArrayBuffer, which
have had their unexpected changes in (WebIDL) specs and prefixing.

It'd be nice to see a -fast track- decision process which might be tapped
upon for future methods. If the four large vendors agree on a method name
through a fast track process, perhaps devs could skip some vendor prefixing.

The issue there, of course, is that vendors would be tacitly agreeing
to implement such methods. And while they may agree internally
and add it to their road-map, company policy may prohibit
public acknowledgment.

For example, I doubt any vendors object to the basic Typed Array types,
and those types are not currently prefixed.


On 7/9/2011 1:33 PM, Ojan Vafai wrote:
> I share this concern, but I don't think there's anything special here 
> with respect to JavaScript APIs. The same argument applies to how 
> people are often encouraged to use CSS property vendor prefixing.
> div {
>     -moz-box-sizing: border-box;
>     -webkit-box-sizing: border-box;
>     box-sizing: border-box;
> }
> I'm fairly ambivalent on this. It's not clear to me how much it buys 
> us, but I can think of examples where it has worked well (e.g. 
> gradients) because we were able to push the code out and get just 
> enough usage to get useful feedback, but the usage wasn't so 
> widespread that our hands were tied for the final API.
> There's been an immense uproar about vendor-prefixing on a number of 
> w3c and whatwg mailing lists in the past year or two. Noone seems 
> especially happy with the current tradeoffs, but noone has made a 
> better proposal yet either.
> Ojan
> On Sat, Jul 9, 2011 at 12:56 PM, Adam Barth <abarth at webkit.org 
> <mailto:abarth at webkit.org>> wrote:
>     The IE blog has had a couple posts recently about new JavaScript APIs
>     that are vendor prefixed:
>     http://blogs.msdn.com/b/ie/archive/2011/07/05/using-pc-hardware-more-efficiently-in-html5-new-web-performance-apis-part-1.aspx
>     http://blogs.msdn.com/b/ie/archive/2011/07/08/using-pc-hardware-more-efficiently-in-html5-new-web-performance-apis-part-2.aspx
>     Here's one of their code examples:
>     ----8<----
>     // Future-proof: when feature is fully standardized
>     if (window.requestAnimationFrame) window.requestAnimationFrame(draw);
>     // IE implementation
>     else if (window.msRequestAnimationFrame)
>     window.msRequestAnimationFrame(draw);
>     // Firefox implementation
>     else if (window.mozRequestAnimationFrame)
>     window.mozRequestAnimationFrame(draw);
>     // Chrome implementation
>     else if (window.webkitRequestAnimationFrame)
>     window.webkitRequestAnimationFrame(draw);
>     // Other browsers that do not yet support feature
>     else setTimeout(draw, PERIOD);
>     ---->8----
>     There are a couple things to notice:
>     1) The requestAnimationFrame API has a vendor prefix in all of these
>     implementations, making this code ugly.
>     2) The vendor prefix isn't buying us anything because this code
>     assumes that the final, non-prefixed version of the API will work the
>     same way that the vendor prefixed version works!
>     If web developers are going to assume that future, non-prefixed
>     versions of the APIs work the same way as current prefixed versions of
>     the APIs anyway, we shouldn't bother with prefixed versions because
>     we're already locked in to the current behavior, even without the
>     prefix.
>     Adam
>     _______________________________________________
>     webkit-dev mailing list
>     webkit-dev at lists.webkit.org <mailto:webkit-dev at lists.webkit.org>
>     http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
> _______________________________________________
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20110709/5ee0c99b/attachment.html>

More information about the webkit-dev mailing list