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,506