After 8 years and many releases the user-agent-utils library is coming to an end, at least in the current form. From a light weight user-agent parsing and handling solution, it had grown over the years into a direction that had to be a dead end.
But times have also been changing. There are better solutions to build cross-browser and cross-platform compatible sites and services. Using libraries like this for browser switches only caused the mess we are in, where most user-agents pretend to be something different, which in return made the analysis of user-agents difficult and often annoying. Take the user-agent of the mobile version of Microsoft’s Edge browser on mobile for example:
Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; NOKIA; Lumia 735) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Mobile Safari/537.36 Edge/12.0
So, Edge not only pretends to be on Android but also be like Chrome and Mobile Safari and not forget good old Mozilla, while it won’t render exactly like any of those browsers. A British band once sang ‘Enough is Enough’, which leads us to the final release 1.20.
Changes in 1.20:
- Fix iPhone detection in case of Opera Mini agent-string
- Prevent bots with bot in UA-String from pretending to be Safari
- Added latest Edge versions
- Added current and future Chrome and Firefox versions
- Improved version discovery specifically for Safari
- Fixed IE mobile 11 version detection
I want to thank all the contributors that helped with code, bug reports and feature requests during the years. Maybe one of them will continue this library and if that happens, I will be happy to link to it from the user-agent-utils page.