Mozilla Extension Development 21-09-2016Henrik Gemal Side 1 Extension udvikling i Mozilla Firefox Henrik Gemal.

Slides:



Advertisements
Lignende præsentationer
Trehøje-Pigerne Side 1 Vejledning til brug af hjemmesiden Det er slet ikke så vanskeligt – så brug hjemmesiden flittigt… Det er.
Advertisements

GSAK – helt fra start Hvad er GSAK ? Download og installation GSAK
Introduktion til Javascript – Grundlæggende Webdesign, F2004. Introduktion til Javascript.
Web 2.0 Teoretisk viden.
Launchy – En Mozilla Extension 9 juni 2005Henrik Gemal Side 1 ● Launchy er en Mozilla extension. Dvs. En udvidelse til Mozilla. ● Virker.
Opstart GSAK med filter Det kan være praktisk at have et filter som gsak starter op i, Det kan være du ikke ønsker at se dine fundne cacher, eller måske.
Hvordan får jeg lagt First Class programmet ind på min egen computer ??? De følgende sider er en lille anvisning på, hvordan du selv kan installere programmet.
Modul 2: Website Undervisere: Stefan og Helle Hvad handler modulet om?
Udvikling af ANDROID programmer (apps) Jens Bennedsen og Jesper Tørresø marts 2011.
Drupal[.org] Open Source CMS 6/
Mozilla ● Open source ● Web browser ● Mail klient ● Organisation ● Fremtiden... Henrik Gemal – Mozilla Evangelist - gemal.dk/mozilla.
Vejledning i blog-værktøjet WordPress Opdateret februar 2009.
Beskyt din computer og dine data!
Challenges in Web Search Engines • Spam • Content Quality • Quality Evaluation • Web Conventions • Duplicate Hosts • Vaguely-Structured Data.
Kontrolpanelet Lær lidt om mulighederne i kontrolpanelet Tryk for start.
Hvordan bruger jeg First Class konferencerne ?
Dag 9: Programpakker Jquery og JQuery Mobile
NetBeans Installation og brug.
01 – Java platform for starters. 2 NOEA2009Java-kursus – Java Platform Introduktion til Java Baggrund Hvad er Java? Faciliteter i Java.
Mød Microsoft – for udviklere & arkitekter Introduktion til ASP.NET 2.0 Jeppe Rørbæk Rambøll Informatik
Eksekvering/Otto Knudsen 1 Udrulning Publicering af en web-applikation.
Introduktion/Otto Knudsen 1 Overblik WebForms ASP.NET.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
© 2013 Netcompany A/S Netcompany A/S · Grønningen 19 · 1270 København K · Tlf Side 1 Simon Otto Nielsen Diplomingeniør i informations og kommunikationsteknologi.
TFS > TFS 2008 migrering Team System ERFA TFS > TFS 2008 migrering.
18 – Java Server Faces. 2 NOEA2009Java-kursus – JSF 2 Web-applikationer - 1 Brugere interagerer med en Web-browser Browseren sender forespørgsler til.
Brug DDB CMS -Et kursus for webredaktører Kursusleder: Ewan Andreasen
Implementering af eget design til en D!ng-hjemmeside v/ Ewan Andreasen
Hvad er Liferay? Leading open source portal platfom Udvikles af Liferay.com og sponsorer Releases hver 8 md Stort community omkring Liferay Ca. 4 mio downloads.
Videregående pc-vejledning Modul 07: Elektronisk post 60+Bornholm.
AJAX/Otto Knudsen 1 AJAX Motivation Definition. AJAX/Otto Knudsen 2 Motivation En typisk web-applikation er synkron klienten sender en forespørgsel og.
Dag 7: Javascript Screen-broadcast – gå til - Indtast mødenummer - Vælg html-viewer - Klik Join sessionwww.123beam.com Php-opsamling (php-warning.
Intro Evaluering De sidste to gange?. HTTP, cookies og sessions Forelæsning nr 10 Tilbage til trafikken mellem server – client Sende HTTP-request og respons.
Lion CMS Introduktion Sådan bruger du systemet. Trin 1 Tryk på login knappen Skriv dit brugernavn Skriv dit password Tryk på OK (Login) knappen Du er.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
Masterpages/Otto Knudsen 1 Navigation på webstedet Kontroller til navigation mellem siderne på webstedet.
OIM Fælles Udviklingstargets | Side 1 Fælles udviklingstargets Analyseopgave Resultatet bliver en tilføjelse/rettelse i OIM-bilag A.2 Udføres med fokus.
DVB-T og MHP pilotprojekt i Danmark, TV2/Nord-Digital Status Q v. Thorbjørn Vynne
Fremstilling af Simple WEB steder [ITPL] Foråret 2004
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
PD – kursusgang 3 Introduktion til Java Script. Mål Viden om hvordan JavaScripts indlejres i HTML dokumenter Viden om programmering i JavaScript  Erklæring.
DWDK – øvelsestime 3 CSS – let the fun begin!!. Tilgængelige slides Disse slides ligger på mit public drev
Mads Kristensen downloads CodePlex top 10 ASP.NET starter kit.
Intro Evaluering De sidste to gange?. HTTP, cookies og sessions Forelæsning nr 10 Tilbage til trafikken mellem server – client Sende HTTP-request og respons.
Grundlæggende DW, HTML, CSS, udskæring.
Client / Server teknologi Eksamensteori Anbefaling: Tag notater.
Udvikling af mobilsites Einar Gislason / FTF. Mobilsites Mobilvenlige sites.
Mozilla ● Open source ● Web browser ● Mail klient ● Organisation ● Fremtiden... Henrik Gemal – Mozilla Evangelist - gemal.dk/mozilla.
1. 2 Overblik HyCon arkitektur –Platform –Komponenter og services –XSLT servlet Chain –Sensorer Den praktiske tilgang HyCon frameworket –Step by Step.
Programmering I Java/C# Datatekniker Dit første projekt.
PHP Intro Webintegrator PHP. PHP Baggrund PHP er et server-side programmeringssprog anvendt til udvikling af dynamiske webapplikationer og websteder.
Lidt hjælp til hjemmesiden Log ind Første gang du skal logge ind på siden skal du kigge nederst til højre og finde…. Log ind med det brugernavn og det.
WebApi service part 2 Routning og Action Simpel test-client (javascript) Session og Application data.
Regionalt d.13.juni Biblioteket flytter mennesker er et projekt som kombinere følgende ting: motion, at være social og teknologi. Det gøres i dette tilfælde.
Don’t be afraid of the advanced editor
De grundlæggende redskaber
Præsentation af webkomponent
1587 Server - Blandet miljø Webintegrator HF1
Oprettelse Af Dreamviewer Site.
De grundlæggende redskaber
Hvordan ændrer jeg teksten på min hjemmeside?
Simpel test-client (javascript) Session og Application data
Skabelon mailopsætning
Modul 07, Elektronisk post
Opret fremmed kursus Blå kurser: Fremmed kurser
Extension udvikling i Mozilla Firefox Henrik Gemal
Præsentationens transcript:

Mozilla Extension Development Henrik Gemal Side 1 Extension udvikling i Mozilla Firefox Henrik Gemal

Mozilla Extension Development Henrik Gemal Side 2 Hvem er jeg? ● Web udvikler hos TDC ● Laver TDC.dk og TDCOnline.dk ● Laver HTML, CSS, PHP ● Med i Mozilla projektet i mange år ● Udviklet et par extensions bl.a. Linky, Launchy, Slashy og en internt til TDC og deres CMS system

Mozilla Extension Development Henrik Gemal Side 3 Hvad kommer jeg til at kunne? ● Lære hvad en extension er ● Lære lidt om hvor let det egentligt er at lave en extension ● Lave din egen extension ● Finde ud af hvordan du kommer videre ● Eller måske bare blive endnu mere forvirret

Mozilla Extension Development Henrik Gemal Side 4 Hvad er extensions? ● Udvidelser til Mozilla Firefox ● Tilføjer eller modificere funktioner ● Skrevet i JavaScript og XML ● Bliver installeret via en såkaldt XPI fil, som faktisk bare er en zip fil

Mozilla Extension Development Henrik Gemal Side 5 Hvad er extensions skrevet i? ● JavaScript – Mozilla API – Egne komponenter i enten C++ eller JavaScript ● XUL – XML / HTML / CSS / PNG ● ANT til bygning af XPI – Cross OS

Mozilla Extension Development Henrik Gemal Side 6 Fremgangsmåden 1.Ændre i XUL eller JavaScript filerne 2.Luk Mozilla Firefox 3.Kør ”ant install” 4.Genstart Mozilla Firefox 5.Test og kig i JavaScript consolen 6.Gentag 1 7.Når du er tilfreds kør ”ant dist” 8.Distribuer XPI filen

Mozilla Extension Development Henrik Gemal Side 7 XPI filen ● Er blot en zip fil ● XPI filen indeholder som regel følgende filer: install.rdf install.js chrome.manifest chrome/extensionnavn.jar defaults/preferences/extensionnavn.js

Mozilla Extension Development Henrik Gemal Side 8 extensionnavn.jar ● content – contents.rdf – main.xul – main.js ● locale – en-US/contents.rdf – en-US/main.dtd – en-US/main.properties ● skin – classic/contents.rdf – classic/main.css

Mozilla Extension Development Henrik Gemal Side 9 Mozilla Firefox 1.0 vs 1.1 ● contents.rdf filer behøves ikke længere. Afløses af chrome.manifest ● Meget nemmere at lave indstillinger ● Muligt at loade overlays dynamisk ● Overlayinfo er fjernet helt ● Afinstallere en extension ved at fjerne folderen

Mozilla Extension Development Henrik Gemal Side 10 Sådan kommer du i gang - 1 ● Opsæt ANT udviklingsmiljø – Ant ● – Ant-Contrib ● – FMPP ● – Fileinfo ● ● Test ANT ved at skrive “ANT -version”

Mozilla Extension Development Henrik Gemal Side 11 Sådan kommer du i gang - 2 ● Hent og unzip mit extension udviklingsmiljø – ● Udfør ”ant” – Hurra! Du har nu en simple extension parat til installation ● Tilret build.properties ● Udfør ”ant” – Hurra! Du har nu din egen extension parat til installation ● Tilret filer under content, defaults, locale, og skin ● Udfør ”ant” – Hurra! Du har nu din helt egen extension parat til installation

Mozilla Extension Development Henrik Gemal Side 12 Opskriften ● Find en lignende extension og tilret – Den bedste og nemmeste måde at lære på ● Steal the best – code the rest – Hvorfor lave noget som andre allerede har lavet? ● Det sværeste – få en god ide – You dont need eyes to see, you need vision ● Hvis det kan spare tid bruger folk det

Mozilla Extension Development Henrik Gemal Side 13 Overlays ● Overlays er en metode til at kombinere flere vinduer til ét ● Extensions er overlays til et allerede eksisterende XUL vindue, f.eks. browser vinduet ● Overlays er XUL filer ● Overlays kan indeholder referencer til eksterne filer med JavaScript, CSS og tekster ● Overlays til kan tilføje menu'er eller knapper

Mozilla Extension Development Henrik Gemal Side 14 main.xul

Mozilla Extension Development Henrik Gemal Side 15 main.js - Simpel var test = { onLoad: function() { this.initialized = true; }, doToolbar: function() { if (this.initialized) alert("Hi from toolbar!"); }, doContext: function() { if (this.initialized) alert("Hi from context!"); } }; window.addEventListener("load", function(e) { test.onLoad(e); }, false);

Mozilla Extension Development Henrik Gemal Side 16 Mozilla API ● API til næsten alt ● Se IDL filer på lxr.mozilla.org ● IO, XML, HTTP, Cache, DOM ● Hvad er URL'en da brugeren højre klikkede? ● Hvor på siden højre klikkede brugeren? ● Hvad højre klikkede brugeren på?

Mozilla Extension Development Henrik Gemal Side 17 main.js – Brug af URL var test = { onLoad: function() { this.initialized = true; }, doToolbar: function() { if (this.initialized) alert("Hi from toolbar!"); }, doContext: function(e) { var re=/^wiki.sslug.dk$/i; if (gBrowser.currentURI.host.match(re)) gBrowser.addTab(gBrowser.currentURI.spec + "?action=history"); } }; window.addEventListener("load", function(e) { test.onLoad(e); }, false);

Mozilla Extension Development Henrik Gemal Side 18 Debug ● Debug er svært ● Kig altid i JavaScript konsol'en ● Slå debug information til i about:config ● ”javascript.options.showInConsole” sættes til true ● ”javascript.options.strict” sættes til true test.prototype.trace = function(t) { var CONSOLE_SERVICE = try { CONSOLE_SERVICE.logStringMessage("Launchy: " + t); } catch(ex) { }

Mozilla Extension Development Henrik Gemal Side 19 Indstillinger ● Bliver MEGET nemmere i Firefox 1.1 ● I dag kombination af XUL og JavaScript ● I Firefox 1.1 rent XUL (for det meste)

Mozilla Extension Development Henrik Gemal Side 20 main.js – Brug af gContextMenu var test = { onLoad: function() { this.initialized = true; }, doToolbar: function() { if (this.initialized) alert("Hi from toolbar!"); }, doContext: function(e) { if (gContextMenu.onImage) alert("du klikke pa et image") if (gContextMenu.onLink) alert("du klikke pa et link") } }; window.addEventListener("load", function(e) { test.onLoad(e); }, false);

Mozilla Extension Development Henrik Gemal Side 21 Problemer ● Høj indlærningskurve – Til dels afhjulpet af mit extensions kit ● Manglende dokumentation ● Namespace ● Forskel mellem Gecko klienter ● Brug af gamle API'er ● Kræver genstart hver gang

Mozilla Extension Development Henrik Gemal Side 22 main.js - Brug af gContextMenu var test = { doContext: function(e) { var n = gContextMenu.target; if (n) for (var i = 0; i < 5; i++) if (n.nodeName.toLowerCase() == "div" && n.id == "bodyContent") { alert("bodyContent") break; } else { n = n.parentNode; if (!n) break; } }; window.addEventListener("load", function(e) { test.onLoad(e); }, false);

Mozilla Extension Development Henrik Gemal Side 23 XULRunner ● Simpel pakke som gør det muligt at afvikle XUL applikationer ● XULRunner + jar fil = applikation ● Kunne distribueres via setup program ● XULRunner kan bruge netværk, DOM, XML, Extensions, XUL, kryptografi, XSLT, Gecko ● Kunne bruges til administration, kiosk applikationer

Mozilla Extension Development Henrik Gemal Side 24 main.js – Brug af source var test = { doContext: function(e) { var re=/ /; var b = document.commandDispatcher.focusedWindow.document.documentElement.innerHTML; var ex = re.exec(b); if (ex) alert("det var jo " + ex[1] + " der lavede siden pa " + ex[2] + " sekunder"); } }; window.addEventListener("load", function(e) { test.onLoad(e); }, false);

Mozilla Extension Development Henrik Gemal Side 25 Hvad ellers? ● JsLib – API til dagligdags ting – Debug, IO, netværk, ZIP ● MozDev.org – cvs samt XPI distribution ● til XPI distribution

Mozilla Extension Development Henrik Gemal Side 26 Hvordan kommer jeg videre? ● Extensions Forum at MozillaZine – ● Mozilla Source Code Search – ● Extensions Mirror – ● BlogUpdates - What's happening in the Mozilla community – ● ● news://news.mozilla.org news://news.mozilla.org ● news://news.mozdev.org news://news.mozdev.org ● ment ment ●