2023-09-11 09:49:57 -04:00
/*
* Copyright ( c ) 2023 , the SerenityOS developers .
*
* SPDX - License - Identifier : BSD - 2 - Clause
*/
# include "UserAgent.h"
namespace WebView {
2024-08-22 03:37:47 -04:00
OrderedHashMap < StringView , StringView > const user_agents = {
{ " Chrome Linux Desktop " sv , " Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 " sv } ,
{ " Chrome macOS Desktop " sv , " Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 " sv } ,
{ " Firefox Linux Desktop " sv , " Mozilla/5.0 (X11; Linux x86_64; rv:129.0) Gecko/20100101 Firefox/129.0 " sv } ,
{ " Firefox macOS Desktop " sv , " Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:129.0) Gecko/20100101 Firefox/129.0 " sv } ,
{ " Safari macOS Desktop " sv , " Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.6 Safari/605.1.15 " sv } ,
2023-09-11 09:49:57 -04:00
{ " Chrome Android Mobile " sv , " Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.5845.114 Mobile Safari/537.36 " sv } ,
{ " Firefox Android Mobile " sv , " Mozilla/5.0 (Android 13; Mobile; rv:109.0) Gecko/116.0 Firefox/116.0 " sv } ,
2024-08-22 03:37:47 -04:00
{ " Safari iOS Mobile " sv , " Mozilla/5.0 (iPhone; CPU iPhone OS 17_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Mobile/15E148 Safari/604.1 " sv } ,
2023-09-11 09:49:57 -04:00
} ;
2024-08-28 10:26:11 -04:00
Optional < StringView > normalize_user_agent_name ( StringView name )
{
for ( auto const & user_agent : user_agents ) {
if ( user_agent . key . equals_ignoring_ascii_case ( name ) )
return user_agent . key ;
}
return { } ;
}
2023-09-11 09:49:57 -04:00
}