Webextensions

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 21. dubna 2020; kontroly vyžadují 4 úpravy .

WebExtensions  je technologie rozšíření prohlížeče podporovaná většinou oblíbených prohlížečů. Pomocí WebExtensions můžete vytvářet rozšíření, která mohou mírně změnit uživatelské rozhraní prohlížeče, upravit obsah webových stránek a změnit síťové požadavky prohlížeče. WebExtensions jsou vytvořena pomocí technologií jako HTML , CSS , JavaScript a JSON .

Struktura rozšíření

Rozšíření WebExtensions je zip archiv s téměř libovolnou vnitřní strukturou vnořených adresářů a souborů. Jedním z mála požadavků z hlediska struktury je přítomnost manifest.json – souboru JSON , který vytváří protokol pro interakci mezi prohlížečem, rozšířením prohlížeče a uživatelem. Co může manifest obsahovat:

Architektonické prvky

Každá stránka na pozadí rozšíření, stránka nastavení nebo stránka rozbalovací nabídky běží v samostatném procesu s vlastním kontextem. Interakce mezi jednotlivými skripty stejného rozšíření, mezi různými rozšířeními a také mezi rozšířením a prohlížečem se provádí pomocí pojmenovaného systému zpráv. Většina požadavků z rozšíření do prohlížeče, které mohou způsobit zpoždění (například čtení a zápis různých dat), je implementována pomocí asynchronních rozhraní API .

Podpora napříč prohlížeči

Od listopadu 2017 jsou rozšíření vytvořená pomocí WebExtension podporována všemi hlavními prohlížeči:

Podpora internacionalizace

Rozšíření WebExtensions může podporovat více jazyků pomocí vestavěné knihovny JavaScriptu i18n.js. Soubory odpovídající různým národním prostředím jsou ve formátu JSON . Pomocí speciální syntaxe lze některé části souboru manifest.json (jako je název a popis rozšíření) automaticky svázat s řetězci z jejich příslušných lokalit, ale je primárně odpovědností vývojáře rozšíření svázat různé prvky uživatelské rozhraní rozšíření na lokalizované řetězce.

Analogy

Podobná technologie WebExtensions je XUL , která byla použita v Mozilla Firefox až do verze 57, a proprietární technologie společnosti Apple , která se používá k vytváření rozšíření v prohlížeči Safari .

Kritika

Technologie WebExtensions byla vyvinuta jako cross-browser, ale v praxi se úroveň podpory různých API liší prohlížeč od prohlížeče. V závislosti na tom, jaké funkce rozšíření implementuje, se může ukázat, že pro publikování rozšíření v adresářích různých prohlížečů budete muset vytvořit různé archivy. Vývojáři prohlížečů se snaží vyřešit problém s nekompatibilitou pomocí průvodců migrací, což jen ztěžuje vývoj rozšíření.

Vývojáři prohlížečů navíc kritizují extrémně slabé možnosti WebExtensions ve srovnání s XUL  - WebExtensions například neumožňují vytvářet panely nezávislé na navštívených zdrojích a nutí vývojáře zasahovat přímo do kódu stránek, které si prohlížejí, resp. se omezují na slabé možnosti ikony rozšíření. Pozoruhodným příkladem rozšíření, kterému bylo zabráněno v přechodu na WebExtensions, je widget, který zobrazuje nejnovější zprávy z kanálů RSS na tickeru.

Příklady rozšíření

Příklady rozšíření prohlížeče vytvořených pomocí technologie WebExtensions a fungujících ve třech nebo více prohlížečích:

Odkazy