Hi!
This the first follow up e-mail after a long meeting I had with John last
Friday. We discuss many point on the API for the data store, but some of
them seriously needs a wider discussion with all of you.
This first e-mail is about Browser environment.
John suggest we add an environnement entry to the *Browsers* collection:
-
https://github.com/jwhitlock/web-platform-compat/blob/master/api.md#browsers
The intent is to mimic the current segregation we have on MDN with desktop
vs mobile browsers. My opinion is that it is a very fuzzy notion and that
we should not record such information into the DB. I tend to think that
using the Browser name could be good enough if we really needs to make such
distinction (i.e. Safari for Mac vs Safari for iOS) as it is two distinct
browsers. Actually I think it's a fuzzy notion because it is sometimes kind
of arbitrary and it can change over time.
For example, here is the current Firefox ecosystem:
-
- Firefox
- Firefox for Android
- Firefox OS
- Firefox for Firefox OS (Firefox OS' browser)
But there is worst case scenario where mobile means almost nothing. For
example, what about the Android stock browser:
http://slides.com/html5test/the-android-browser
It is very difficult to seriously keep track of each browser on all device
and OS therefor I tend to think we should just use Browsers name for the
most important products and possibly use implementation notes at the
browser level to keep track of the subtleties between similar product.
Similar to that is the question raised by Andrew Overholt a few weeks ago:
Is it possible to know what API are available only in Web Workers? Actually
such question is larger than it looks. Browsers have different internal
environment to run web technologies, with different API available:
- Web content (regular web pages)
- Web Workers
- Browser content (directly inside the browser such as Firefox Add-ons,
Chrome Apps or Safari Extensions)
Plus, they can also have some kind of security/permission model on top of
that (i.e. take a look at Firefox OS).
And there is no guaranty it will not change in the future.
So given all of that, I tend to think we should not keep this linked to the
Browsers collection but simply have dedicated Feature-sets dedicated to
each environnement. However, I know it could make things hard if we want to
make conditional request against some features based on their availability
on some environment for some browsers.
Could it be possible to imagine some king of an heritage system between
browsers? Something like: Browser A is the same as Browser B but Browser B
has feature X differently implemented than Browser A. That could be very
handy for WebKit browsers for examples which are basically all the same but
with subtle build difference (to say the least).
I would love to hear any suggestion you could have to handle all of this
without cluttering the DB model to much (which could make contribution and
maintenance very hard).
Best,
--
Jeremie
.............................
Web :
http://jeremie.patonnier.net
Twitter : @JeremiePat <
http://twitter.com/JeremiePat>