Vývojáři webů zažívají po delší době trochu vzrušení – prohlížeč Safari míří s verzí 3 z výsostných vod Mac OS X na Windows. První veřejná beta není však příliš kvalitní, na českých Windows XP SP2 se mi ji nepovedlo spustit. A nejsem sám.
Beta Safari 3.0 má upravenou strukturu své identifikace (user-agent string), která nyní obsahuje i číslo verze:
Mozilla/5.0 (Windows; U; Windows NT 6.0; pt) AppleWebKit/522.11.3 (KHTML, like Gecko) Version/3.0 Safari/522.11.3
Přidání intuitivního identifikátoru verze by mohlo být ulehčením pro rozpoznávání jednotlivých verzí Safari, neboť zatím se verze Safari rozlišovaly podle čísla buildu (číslo za Safari/). Struktura identifikace se naposledy měnila dávno před vydáním Safari 1.0. První testovací verze Safari se identifikovaly:
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ca-es) AppleWebKit/60 (like Gecko) Safari/60
Vývojáři vykreslovacího jádra KHTML, které je základem WebKitu, postrádali v identifikaci zmínku o KHTML, což dali najevo. Apple tehdy identifikaci Safari upravil do tvaru:
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; cs-cz) AppleWebKit/73 (KHTML, like Gecko) Safari/73
a ta vydržela až do verze 2.0.4. Je možné, že struktura identifikace Safari se ještě rozšíří s uvedením iPhone, který tento prohlížeč také bude obsahovat.
Pro opravdu naruzive sberatele uastringu doplnim, ze pokud nekdo pouziva nocni buildy Safari http://nightly.webkit.org/ muze byt situace dvakrat tak zajimavejsi.
Nocni build je totiz jen samotny webkit, ktery se s pusti uvnitr GUI jiz nainstalovaneho Safari prohlizece (detaily na: http://webkit.org/blog/101/back-to-basics/ ).
Treba ja mam na macbooku ted posledni stabilni verzi Safari s UAstringem: “Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en) AppleWebKit/419 (KHTML, like Gecko) Safari/419.3”
Ale zaroven posledni nocni build webkitu s UAstringem “Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en) AppleWebKit/522+ (KHTML, like Gecko) Safari/419.3”
Coz je stale nainstalovane stabilni Safari 2.0.4 (build 419.3) ale pouzivajici posledni nocni build webkitu (z 10. cervna). Co znamena to plus za 522 nevim, napada me jen, ze ten den probehly dva nocni buildy http://nightly.webkit.org/builds/mac/1 a ja mam ten novejsi, tak mu prisili plusko (ale to opravdu hadam).
BTW. nocni buildy se od ted budou tvorit i pro Windows http://nightly.webkit.org/builds/win/1
S pluskem myslím hádáš. Plusko má dle mého názoru význam podobný jako kdysi u Mozilly. Z buildu 522 se zřejmě dělal stabilní branch pro vydání Safari 3.0, zatímco vývoj dále beží na trunku, který je označen právě tím pluskem.
U Mozilly to bylo takto:
Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US; rv:1.0.0+) Gecko/20020423
David si všiml, že v debug menu Safari je položka ‘site-specific hacks’, která je v Safari běžně zapnutá. Tak jsem pátral ve zdrojácích, a našel, že se jedná právě o machrování s UAstringem pro domény yahoo.com a flick.com. Safari se na nich hlásí také jako Safari, ale starší verze včetně toho že i na Windows se tváří jako Mac OS X (důvod netuším, páč tam je jen odkaz do nějaké interní bugzilly).
Přesné podoby stringů najdeš ve zdrojáku, funkce _userAgentForURL() má pár řádků http://www.koders.com/noncode/fid469663037C7D987803483ECADC6068A0AD6B40F2.aspx#L3579