Add-on SDK til udviklere af tilføjelser

Af Jesper Kristensen, 21-06-2011 19:00

Mozilla har udgivet version 1.0 af Add-on SDK og første beta af Add-on Builder.

Tilføjelser er og har altid været en vigtig del af Firefox, og Firefox ville ikke være nået så langt som den er uden dem. 85% af alle Firefox-brugere har valgt at installere en eller flere tilføjelser.

Men tilføjelser i Firefox har også en række udfordringer.

  • De fleste udvidelser kræver en genstart af Firefox for at blive installeret eller opdateret, selvom det med Firefox 4 er blevet muligt at lave udvidelser, der ikke kræver genstart.
  • At lave en udvidelse til Firefox kræver også et indgående kendskab til hvordan browserens indmad virker, og udvidelsen skal skrives i XUL, CSS og JavaScript, hvor XUL er et helt nyt sprog man skal lære.
  • Og fordi udvidelsen er så tæt knyttet til indmaden i Firefox, skal den testes og måske opdateres, hver gang der kommer en ny version af Firefox. Det er måske til at leve med når der komme en ny version en gang hvert år, men nu hvor Mozilla er gået over til at udgive en ny version hver sjette uge, er det svært at følge med.
Formålet med Add-on SDK er at gøre alt dette lettere.
  • Udvidelser udviklet med SDK'et skrives i HTML, CSS og JavaScript, som enhver webudvikler kender.
  • SDK'et indeholder en række API'er, som kan bruges uden yderligere kendskab til indmaden i Firefox. Det betyder også, at din udvidelse automatisk vil være kompatibel med fremtidige versioner af Firefox, hvis du bare holder dig til disse API'er.
  • API'erne er designet på en sådan måde, at udvidelser kan installeres og afinstalleres uden en genstart, og uden at du som udvikler behøver holde styr på at fjerne alt hvad du tilføjer.
Disse API'er kan dog ikke alt hvad man kan ved at stikke fingrene direkte ned i motorrummet. Derfor kan du også tilføje dine egne API'er, som din udvidelse og andre udviklere kan bruge. Men så mister du bare fordelen ved at udvidelsen automatisk er kompatibel med fremtidige versioner af Firefox, og du skal også selv designe API'et, så din udvidelse kan afinstalleres uden en genstart.

Add-on SDK er et godt skridt på vejen, men det er også lidt besværligt. Som webudvikler er jeg vant til at det eneste jeg behøver er en tekst editor og en browser, og jeg skal bare trykke Opdater i browseren for at se mine ændringer. For at udvikle traditionelle udvidelser til Firefox, er det eneste ekstra jeg skal bruge et zip-program, når jeg skal udgive min Firefox-udvidelse. Med Add-on SDK skal jeg til at installere både Python og SDK'et, og så skal jeg til at kompilere min udvidelse med et kommandolinje-værktøj. Det kan jeg undgå med Add-on Builder, som er en hjemmeside med SDK og en editor bygget sammen "i skyen". Her kan jeg lave min udvidelse direkte på en hjemmeside, og jeg kan teste den med det samme, og udgive den til addons.mozilla.org. Det kræver bare at man kan undvære sin vandte tekst editor.

At skrive en eksisterende udvidelse om til at bruge SDK'et er et stort projekt, og meget skal skrives om fra bunden. Men heldigvis kan man vælge at fortsætte som man plejer uden SDK'et med XUL, genstarter og opdateringer ved nye versioner af Firefox.

Firefox har altid været foran blandt browserne inden for tilføjelser. Internet Explorer har dem, men de er i maskinkode, hvilket betyder C++. De er derfor svære og tidskrævende at lave, og det er begrænset hvad de kan. Tilføjelser til Chrome og Safari er nemme at lave i HTML, CSS og JavaScript, men til gengæld er det meget begrænset hvad man kan med dem. Med tilføjelser til Firefox kan man derimod næsten alt hvad man har fantasi til. De er lettere at lave end tilføjelser til Internet Explorer, og med det nye SDK og Builder er simple tilføjelser lige så nemme at lave som tilføjelser til Chrome og Safari, mens det stadig er muligt at lave mere avancerede tilføjelser til Firefox.