ipfs / ipfs-gui

Creating standards and patterns for IPFS that are simple, accessible, reusable, and beautiful
105 stars 17 forks source link

Define our browserlist. Which browser dont we support and why? #66

Closed olizilla closed 5 years ago

olizilla commented 6 years ago

The main question here is, what browsers can we support, and what browser should we support. For web apps that use an embedded js-ipfs instance, the bar is high, it needs modern features, but we should document those, so we can figure out the right browserslist for it.

For web apps that don't intend to use js-ipfs we should aim to be as inclusive as possible. js-ipfs-api makes http requests to a remote ipfs node, so there is no strong reason why we can't support older browsers beyond the time and effort it takes. It's worth remembering that people running older browsers aren't doing so to deliberately make developers lives harder, but because they are not allowed or can't afford the time, money, or energy to do so.

From https://github.com/ipfs-shipyard/ipld-explorer/pull/37#discussion_r215810050

The current defaults config for browserslist is:

where dead is defined as:

The default setting currently includes the following browsers:

$ npx browserslist@latest "defaults"
npx: installed 5 in 2.489s
and_chr 67
and_ff 60
and_qq 1.2
and_uc 11.8
android 67
android 4.4.3-4.4.4
android 4.4
baidu 7.12
chrome 68
chrome 67
chrome 66
chrome 63
chrome 49
edge 17
edge 16
firefox 61
firefox 60
ie 11
ie_mob 11
ios_saf 11.3-11.4
ios_saf 11.0-11.2
ios_saf 10.3
op_mini all
op_mob 46
opera 55
opera 54
safari 11.1
safari 11
samsung 7.2
samsung 6.2
samsung 4
lidel commented 6 years ago

Additional data point: random things break without access to WebCrypto API, which is only available in Secure Contexts. We can remove support for browsers without those.

lidel commented 5 years ago

Continued in https://github.com/ipfs/community/issues/393