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