V minulosti se již několikrát se objevily spekulace, že Google přijde s vlastním webovým prohlížečem. Ale vždy odezněly nebo byly vyvráceny.
Google ovšem prohlížeč skutečně vyvíjel, a to již od roku 2006. Vývoj začal asi rok a půl po té, co Google zaměstnal vývojáře Firefoxu Bena Goodgera a Darina Fishera. Tajný projekt vedl Brian Rakowski. Mitchell Baker, CEO Mozilla Corporation, o projektu údajně věděla. (Zdroj: Wired.com)
Prohlížeč Google Chrome je zatím dostupný pouze ve verzi pro Windows, ale verze pro Linux a Mac mají následovat. Pokud jste nedočkaví, stáhněte si zdrojový kód a prostudujte instrukce pro kompilaci pod Linuxem (celý prohlížeč se ale zatím ještě nepřeloží) nebo zkuste rozchodit prohlížeč pod Wine. Nám zatím nezbývá než posuzovat verzi pro Windows.
WebKit a vlastní JavaScriptový engine V8
Renderovací jádro si Google nevytvořil vlastní, použil WebKit. Volba to je jistě dobrá, WebKit je multiplatformní, open source (LGPL), rychlý a snadno embedovatelný.
Ve vydané první verzi Google Chrome (přesněji verzi 0.2) je obsažena poněkud starší verze WebKitu. Z toho plyne, že Google Chrome zatím nemá ani 100 bodů v testu Acid3, ani novinky z HTML5 a kaskádových stylů, které Webkit implementoval před několika měsíci. Naopak obsahuje vyhlazování písma podle operačního systému, které tehdy WebKit ještě neměl. V budoucnu lze předpokládat použití novější verze WebKitu s většinou novinek.
JavaScriptový engine V8 Google vyvinul sám a zveřejnil pod novou BSD licencí. Je napsán v C++ a je embedovatelný do dalších C++ aplikací. Google jej prezentoval jako velmi rychlý a při používání Google Chrome se skutečně může zdát, že se jedná o v tuto chvíli nejrychlejší JavaScriptový engine. John Resig předvedl několik testů, ve kterých ukazuje, že ačkoliv je V8 rychlejší než JavaScript stabilních verzí prohlížečů, nový Tracemonkey plánovaný do Firefoxu 3.1 jej dokáže předstihnout. V rozporu s tím je pouze JavaScriptový benchmark Googlu, ve kterém V8 nekompromisně vychází jako nejlepší. Lze předpokládat, že se stav časem změní, rozdíly mezi prohlížeči nejsou propastné (kromě IE, který je i se svou verzí IE8 pozadu, byť již ne příliš) a všichni na zrychlení pracují.
Chromium a Chrome
Projekt vytvářející vlastní prohlížeč se jmenuje Chromium a je open source rovněž pod novou BSD licencí. Chromium se možná bude plést s Google Chrome, což je zkompilovaný prohlížeč vydaný Googlem a dostupný pod EULA. Naopak Chromium je plně open source a jsou dostupné jeho automatické buildy (zatím opět pouze pro Windows). Na rozdíl od Google Chrome je není třeba instalovat, stačí rozbalit ZIP soubor a spustit.
Panely v procesu
Jednotlivé panely prohlížeče běží ve zvláštních procesech (stejný mechanismus přinese i IE8). Názory na rozdělení panelů mezi více procesů se různí. Zatímco Johnu Resigovi z Mozilla Corporation se nápad líbí, CEO Opera Software Jon von Tetzchner jej nevidí hodný následování.
Součástí prohlížeče je i správce úloh, ve kterém naleznete všechny procesy prohlížeče i s panely, které obsluhují, zjistíte, nakolik každý z nich vytěžuje procesor, kolik spotřebovává paměti, jeho aktuální přenosovou rychlost a nechybí ani možnost ukončení procesu (kill) daného panelu.
Stránka about:memory obsahuje srovnání nároků všech aktuálně běžících prohlížečů v systému. Dole je detailní výpis nároků jednotlivých procesů Google Chrome. Všimněte si, že informace o přidělení procesu každému panelu není zcela pravdivá, protože tři panely obsahující stránky z domény Root.cz jsou obsluhovány jedním procesem.
Celý prohlížeč je označován jako spolehlivý a odolný vůči zatuhnutí nebo pádu. Pokud se jeden panel zasekne nebo spadne (lze nasimulovat zadáním adresy about:crash), prohlížeč má vždy fungovat dál. Autor článku tvrzení o „nezatuhávání“ prohlížeče tak úplně nevěří, jelikož některé stránky používající pluginy Flash nebo QuickTime mu byly schopny celý prohlížeč spolehlivě zatuhnout na desítky vteřin. Většina uživatelů tento problém ale zřejmě nemá. Zatuhnutí stránky si snadno nasimulujete vložením nekonečného cyklu „while(true) {}“; pracovat se zatuhlým panelem nelze (leda jej zavřít), ovšem zbytek prohlížeče bez problému běží.
Jak prohlížeč vypadá a co umí?
Vypadá velmi jednoduše a moc toho neumí. Ne, to není chyba, ale vlastnost.
Cílem bylo maximalizovat zobrazovací plochu prohlížeče. To šlo tak daleko, že ouška panelů byla přesunuta do titulku okna, čímž se ušetřilo pár bodů na výšku. Počet lišt prohlížeče je minimalizován na jednu základní lištu s navigací a adresním řádkem a volitelnou lištu se záložkami. Stavový řádek zmizel (další ušetřené body na výšku), pokud má ovšem zobrazovat nějakou informaci, objeví se a posléze zase zmizí (Google to nazývá status bubble). Neobvyklé, ale elegantní řešení.
Přidat další ovládací prvky nelze. Zda půjde prohlížeč rozšířit (podobně jako třeba Firefox), zatím není jisté. Uvidíme, zda se tento přístup vyplatí a bude uživateli přijat.
Jednoduché ovládací rozhraní prohlížeče Google Chrome.
U takto jednoduchého prohlížeče mohou uživatelům některé funkce chybět. Krátký seznam funkcí, které byste v Google Chrome mohli hledat a nenajdete:
- fullscreen mód
- přepínání alternativních stylů
- vypnutí JavaScriptu
- podporu a autodetekci RSS
- náhled tisku
Intuitivní rozhraní
Google Chrome sází na jednoduché rozhraní, na které by mohli snadno přejít uživatelé ostatních prohlížečů. Není divu, že tam, kde návrháři zcela cíleně nevybrali jinou architekturu, se ostatním prohlížečům velmi podobá. Zkratky známé z prohlížečů Internet Explorer a Firefox v něm mívají stejnou funkci, např. CTLR+L, CTRL+K, ALT+D, CTRL+U.
Omnibox
Adresní řádek, nazývaný Omnibox, je pojatý trochu netypicky. Jedná se pokud vím o první prohlížeč, který respektuje dlouho známé tajemství, že většina běžných uživatelů webovým adresám nerozumí, nezadává je a pokud se mají dostat na svou oblíbenou stránku, použijí jakkoliv dlouhý a komplikovaný postup, jen ne zadání adresy.
Proto adresní řádek slouží primárně stejně jako pole internetového vyhledávače (ať již Googlu nebo vámi nastaveného vyhledávače), do kterého lze jakoby mimochodem zadat i webovou adresu. Vše je navíc udělané tak dobře, že pokud s předchozím odstavcem o běžných uživatelích nesouhlasíte nebo ho vůbec nechápete, nemusíte se tím trápit a rovnu ho zapomeňte, protože na Google Chrome stejně žádný rozdíl nepoznáte.
Pokročilou vlastností Omniboxu je vyhledávání na webech, které jste již někdy navštívili. Google Chrome detekuje a zapamatuje si podoby hledacích formulářů. Pokud jednou použijete formulář Hledej na Root.cz, příště do adresního řádku začněte psát root, stiskněte TAB. Adresní řádek se změní a můžete zadat hledaný výraz. Ve správci vyhledávačů pak můžete editovat jak klíčové slovo, tak podobu odesílaného požadavku.
Kompatibilita a standardy
U právě zveřejněného prohlížeče bychom očekávali problémy se zobrazováním webových stránek. Nefungujících webů je ale překvapivě málo. Jednak je jádro WebKit poměrně kvalitní, a pak v něm řada webmasterů již weby testuje. Narazil jsem pouze na problém s www.mapy.cz a několik problémů na Facebooku.
Podpora webových standardů je u jádra WebKit na vynikající úrovni, o čemž svědčí i přehled podporovaných CSS selektorů. V parsování a renderování dokumentů bychom neměli čekat neobvyklé problémy. Zajímavé bude, až se objeví srovnávací test JavaScriptového enginu V8. Je přece jen nový, nějaké problémy se u něj objevit mohou.
Google Gears
Součástí instalace Google Chrome je plugin Google Gears, který implementuje některé prvky HTML5 a dále některá rozšíření Googlu.
Můžete tak webové aplikace spouštět ve zvláštním módu prohlížeče, ve kterém vypadají a chovají se podobně jako aplikace desktopové (podobně to dělá Mozilla Prism).
Zajímavosti
Google Chrome je plně lokalizovaný (včetně české kontroly pravopisu při vyplňování formulářů). Lokalizátor ovšem neznal nebo nebral v úvahu českou terminologii v oblasti webových prohlížečů, snad jen proto přeložil „tabs“ jako „karty“.
Součástí prohlížeče je antiphishingová ochrana (na stejném principu jako u Firefoxu) a anonymní režim (ten není zcela dokonalý, kupříkladu před CSS exploitem vás neochrání).
Pokud není hledaný server nalezen, nabídne prohlížeč jeho zobrazení z Google Cache. (Konečně! Proč něco podobného nemají už dávno všechny prohlížeče?).
Asi hodinu po vydání prohlížeče se objevilo upozornění na bezpečnostní problém, který vychází z dříve známé chyby Webkitu a nebude se jednat o problém jediný.
Speciální stránky
Google Chrome obsahuje několik pomocných stránek:
- about:version – verze prohlížeče
- about:plugins – nainstalované pluginy
- about:histograms – interní metriky
- about:dns – DNS, která si prohlížeč pamatuje
- about:cache – výpis cache prohlížeče
- view-cache:stats – statistiky cache prohlížeče
- about:stats – ladicí údaje a interní parametry prohlížeče
- about:network – velmi užitečný nástroj pro monitoring síťového provozu
- about:crash – vyvolá pád procesu patřící danému panelu
- about:hang – způsobí zamrznutí procesu aktuálního panelu
- about:memory – spotřeba prostředků jednotlivými procesy
- about:internets – velikonoční vajíčko zobrazující, jak vypadá Internet (kde jsme to už jen viděli?).
Pro webové vývojáře
Součástí prohlížeče je nástroj na testování stránek. Jedná se o tentýž nástroj, který najdeme u jádra Webkit a zasloužil by si vlastní článek. Stačí, když si řekneme, že obsahuje podobné funkce jako Firebug, který je již na poli podobných nástrojů korunovaným králem, tedy konzoli a debugger JavaScriptu, DOM Inspector a profiler načítání webových stránek; některé jsou řešené trochu jinak jiné trochu lépe než u Firebugu. Detailní screenshoty původní verze najdete u Adama Haunera, verze u Google Chrome je prakticky stejná.
Ladění stránek s Google Chrome.
Další degradace user agent stringu
Identifikátor prohlížeče, user agent string, byl prohlížeči degradován téměř od začátku. Místo, aby sloužil k prostému označení prohlížeče, snaží se jeho prostřednictvím prohlížeče maskovat za prohlížeč jiný, který se ovšem z historických důvodů maskuje také za jiný prohlížeč atd. User agent stringy se nabalují na sebe a postupně bobtnají.
Google Chrome tomu nasadil korunu. S touto identifikací by soutěž o nejnemožnější user agent string jistě vyhrál:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13
Situace objektu navigator, který se používá pro detekci prohlížečů z JavaScriptu, je ještě horší, podívejte se na jeho hlavní vlastnosti a dělejte si čárku, kdykoliv narazíme na pravdivý údaj („Google“ nebo „Chrome“):
navigator.appName : Netscape
navigator.appCodeName : Mozilla
navigator.product : Gecko
navigator.vendor : Apple Computer, Inc.
Pokud stejně jako já nemáte ani jednu čárku, počítali jste správně. Z detekce prohlížečů se pomalu stává natolik komplikovaná záležitost, že z ní jednoho dne půjde napsat doktorát. Je na čase se rozhodnout, zda není jednodušší napsat webovou aplikaci univerzálně, než snažit se prohlížeče správně detekovat.
Problém s EULA
Vydání Google Chrome se neobešlo bez malého skandálu. Krátce po vydání uživatelé upozornili na sporný bod 11.1 jeho EULA, který říká:
11.1 K Obsahu, který odešlete, zveřejníte nebo zobrazíte v rámci Služeb nebo jejich prostřednictvím, si ponecháváte autorská práva a jakákoli jiná práva, která ohledně tohoto Obsahu vlastníte. Odesláním, zveřejněním nebo zobrazením obsahu udělujete společnosti Google trvalou, neodvolatelnou, celosvětovou, bezplatnou a nevýhradní licenci k reprodukování, přizpůsobování, upravování, překládání, publikování, veřejné prezentaci a šíření jakéhokoli Obsahu, který předložíte, zveřejníte nebo zobrazíte v rámci Služeb nebo jejich prostřednictvím.
To způsobilo rozruch. Opravdu Google chce, abychom mu předali všechna práva pro obsah zobrazený jeho prohlížečem? Dle vyjádření Google se jedná o chybu, tato část se do licence dostala z dalších EULA licencí Googlu. Google licenci změnil se zpětnou platností. Anglická EULA již nyní obsahuje:
11.1 You retain copyright and any other rights you already hold in Content which you submit, post or display on or through, the Services.
Na změnu české EULA se čeká.
A co bude dál?
Google se dlouhodobě zajímá spíše o webové aplikace než webové stránky. Snad proto neměl potřebu vytvořit vlastní renderovací jádro, ale použil hotový WebKit. Předpokládám, že není plánován fork projektu a Google bude nadále přebírat nové verze WebKitu.
JavaScriptový engine je naopak pro Google kritickou záležitostí, a proto si vytvořil vlastní. Google je již nějaký čas velmi aktivní při tvorbě nových webových standardů (a přiznejme to, i při tvorbě vlastních rozšíření), obojí se nyní, když má vlastní prohlížeč, ještě posílí.
Google Chrome byl označen dokonce za anti-prohlížeč, protože svým způsobem podkopává úlohu klasického prohlížeče (zjednodušuje ho na nutné minimum) a naopak zdůrazňuje v něm běžící webovou aplikaci. Byl odvážně označen i za Google OS, snad proto, že z pohledu Googlu (a ostatně i dalších autorů webových aplikací) zastává prohlížeč stejnou roli, jakou má pro tvorbu klasických aplikací operační systém.
Závěr
Google Chrome je prohlížeč rychlý, jednoduchý a místy trochu netradiční. Používat ho mohou nejen minimalisté a začínající uživatelé, ale i uživatelé zvyklí často používat webové aplikace a weboví vývojáři, kterým nabízí řadu nástrojů. Bude zajímavé vidět, zda si všechny své vlastnosti uchová i jeho verze pro Linux, jejíž datum vydání zatím není známé.
Ať již bude mít u uživatelů úspěch či nikoliv, Google Chrome přinesl pár zajímavých konceptů, které budou mít vliv na další vývoj webových prohlížečů.