Tvorba univerzálních doplňků
Workshop
Tomáš Zelina
Michal Stanke
Firefox čeká velká změna
Za 9 dní vychází Firefox 57
Kompletní změna UI
Nové prvky vykreslovacího jádra napsané v Rustu
Větší důraz na paralelizaci
Ukončení podpory doplňků napsaných v XULu

Historie vývoje doplňků
Firefox 1.0
XUL
XML UI Language
:[zul]:
XML UI Language
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window id="vbox example" title="Example 3...."
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<vbox>
<button id="yes1" label="Yes"/>
<button id="no1" label="No"/>
<button id="maybe1" label="Maybe"/>
</vbox>
</window>
XML UI Language

V XULu je napsána většina UI Firefoxu

chrome://browser/content/browser.xul
XUL nemá API


XPCOM
Binární moduly
Závislost na platformě

Historie vývoje doplňků

2008
Modernější
Jednodušší - pouze HTML, JS a manifest
Počítá s více procesy
Chrome API

Historie vývoje doplňků
2015
WebExtensions
Inspirovaný Chrome API
Podporované od poloviny 2016

Velká část API je kompatibilní s Chromem
Kompatibilita s budoucími verzemi Firefoxu
WebExtensions
Snaha o standardizaci u W3C


WebExtensions
Největší nevýhoda WebExtensions
Mají omezené možnosti zásahu do prohlížeče
Největší výhoda WebExtensions
Mají omezené možnosti zásahu do prohlížeče
Jak mohou WebExtensions zasahovat do UI
Kompatibilita mezi browsery

Questions?
WebExtensions
By Tomáš Zelina
WebExtensions
- 1,562