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

Ojan Vafai ojan at chromium.org
Sat Jul 9 13:33:41 PDT 2011


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> 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
> 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/d0a091ab/attachment.html>


More information about the webkit-dev mailing list