SlideShare une entreprise Scribd logo
1  sur  20
Mozilla Add-on SDK
I'm Martin aka freaktechnik 
● Information Technology and Electrical 
Engineering student 
● Euphonium player 
● Nightingale Media Player developer 
● Firefox Add-on developer
Goals 
● Basic Firefox Extension Knowledge 
● Tools for Development 
● Add-on SDK Extension Structure and API
Firefox Extensions 
3 Different Types
Traditional Overlay Add-ons 
● The old style 
● Restart to apply 
● Add content by overlaying documents 
● XPCOM
Bootstrapped Extensions 
● Since Firefox 4 
● Restartless 
● Everything is done with XPCOM
Add-on SDK Extensions 
● Compile to bootstrapped extensions 
● CommonJS environement
Base Knowledge 
● JavaScript 
● Maybe HTML and CSS 
● XPCOM
Tools 
● Firefox 
● CFX or JPM 
● An editor
JPM 
● The 'compiler' apart from others 
● Node based 
● npm install jpm --global
Basic Extension Structure 
jpm init
Basic Extension Structure 
● lib →main modules 
● data →misc files 
● test →unit test modules 
● package.json →add-on metadata
Modules 
● Where functionality is 
● Prebuilt SDK modules 
● 3rd party “libraries“ 
● Custom modules for Add-on logic
SDK Modules 
● Split into high-level and low-level API modules 
● High-level modules provide simple APIs for 
things like 
– Page content modification (sdk/page-mod) 
– Tabs (sdk/tabs) 
– Requests (sdk/request) 
– Buttons and toolbars (sdk/ui) 
– Panels (sdk/panel) 
– Clipboard (sdk/clipboard) 
– Passwords (sdk/passwords)
Custom Modules 
● Main loading point module (usually main.js) 
● require() to import other modules 
● exports object for public symbols
Content Scripts 
● Scripts that run in a browser context 
● Still run in a separated sandbox 
● They have access to the document's DOM 
● port for communication
Debugging 
● Firefox 31 
● Always enabled via run command 
● Content-scripts can't be reached
XPCOM with Jetpack 
● const { Cu, Ci, Cr, Cc } = 
require('chrome') 
● Be nice to the global scope: 
const { jsm } = 
require('resource://some.jsm'); 
● You can define components
Future 
● JPM release 
● Integrated extension toolkit
Help! 
● MDN: 
https://developer.mozilla.org/en-US/Add-ons/SDK/ 
● Sourcecode: 
https://github.com/mozilla/addon-sdk 
● IRC: irc://irc.mozilla.org/jetpack 
● Follow @MozillaCH on Twitter

Contenu connexe

Tendances

Continuous Deployment of Front-end JavaScript with StriderCD, Github and Sauc...
Continuous Deployment of Front-end JavaScript with StriderCD, Github and Sauc...Continuous Deployment of Front-end JavaScript with StriderCD, Github and Sauc...
Continuous Deployment of Front-end JavaScript with StriderCD, Github and Sauc...niallo
 
Improving the MODX Documentation - March 29, 2019
Improving the MODX Documentation - March 29, 2019Improving the MODX Documentation - March 29, 2019
Improving the MODX Documentation - March 29, 2019Mark Hamstra
 
Web Framework and Struts 2 - KNOWARTH
Web Framework and Struts 2 - KNOWARTHWeb Framework and Struts 2 - KNOWARTH
Web Framework and Struts 2 - KNOWARTHKNOWARTH Technologies
 
Cross platform dotnet development using dotnet core
Cross platform dotnet development using dotnet coreCross platform dotnet development using dotnet core
Cross platform dotnet development using dotnet coreSwaminathan Vetri
 
Docker @haufe lexware tech lunch
Docker @haufe lexware tech lunchDocker @haufe lexware tech lunch
Docker @haufe lexware tech lunchHaufeLexwareRomania
 
Eclipse demo camp 2016 Toronto
Eclipse demo camp 2016 TorontoEclipse demo camp 2016 Toronto
Eclipse demo camp 2016 TorontoGorkem Ercan
 
2013 Ohio LinuxFest - Ports, Packages, and PBI's
2013 Ohio LinuxFest - Ports, Packages, and PBI's2013 Ohio LinuxFest - Ports, Packages, and PBI's
2013 Ohio LinuxFest - Ports, Packages, and PBI'sKen Moore
 
Joomla!Day Poland 2013 - Joomla Architecture (Ofer Cohen)
Joomla!Day Poland 2013 - Joomla Architecture  (Ofer Cohen)Joomla!Day Poland 2013 - Joomla Architecture  (Ofer Cohen)
Joomla!Day Poland 2013 - Joomla Architecture (Ofer Cohen)Ofer Cohen
 
WSO2 Presentation Layer
WSO2 Presentation LayerWSO2 Presentation Layer
WSO2 Presentation LayerNuwan Bandara
 
Custom angular libraries
Custom angular librariesCustom angular libraries
Custom angular librariesMattVaughn9
 
SELF 2014: PBI v10: Application Management Made Easy
SELF 2014: PBI v10: Application Management Made EasySELF 2014: PBI v10: Application Management Made Easy
SELF 2014: PBI v10: Application Management Made EasyKen Moore
 

Tendances (16)

Continuous Deployment of Front-end JavaScript with StriderCD, Github and Sauc...
Continuous Deployment of Front-end JavaScript with StriderCD, Github and Sauc...Continuous Deployment of Front-end JavaScript with StriderCD, Github and Sauc...
Continuous Deployment of Front-end JavaScript with StriderCD, Github and Sauc...
 
Improving the MODX Documentation - March 29, 2019
Improving the MODX Documentation - March 29, 2019Improving the MODX Documentation - March 29, 2019
Improving the MODX Documentation - March 29, 2019
 
Web Framework and Struts 2 - KNOWARTH
Web Framework and Struts 2 - KNOWARTHWeb Framework and Struts 2 - KNOWARTH
Web Framework and Struts 2 - KNOWARTH
 
Enterprise Griffon
Enterprise GriffonEnterprise Griffon
Enterprise Griffon
 
Hello android
Hello androidHello android
Hello android
 
Cross platform dotnet development using dotnet core
Cross platform dotnet development using dotnet coreCross platform dotnet development using dotnet core
Cross platform dotnet development using dotnet core
 
Docker @haufe lexware tech lunch
Docker @haufe lexware tech lunchDocker @haufe lexware tech lunch
Docker @haufe lexware tech lunch
 
Eclipse demo camp 2016 Toronto
Eclipse demo camp 2016 TorontoEclipse demo camp 2016 Toronto
Eclipse demo camp 2016 Toronto
 
2013 Ohio LinuxFest - Ports, Packages, and PBI's
2013 Ohio LinuxFest - Ports, Packages, and PBI's2013 Ohio LinuxFest - Ports, Packages, and PBI's
2013 Ohio LinuxFest - Ports, Packages, and PBI's
 
Joomla!Day Poland 2013 - Joomla Architecture (Ofer Cohen)
Joomla!Day Poland 2013 - Joomla Architecture  (Ofer Cohen)Joomla!Day Poland 2013 - Joomla Architecture  (Ofer Cohen)
Joomla!Day Poland 2013 - Joomla Architecture (Ofer Cohen)
 
WSO2 Presentation Layer
WSO2 Presentation LayerWSO2 Presentation Layer
WSO2 Presentation Layer
 
ASP.NET vNext
ASP.NET vNextASP.NET vNext
ASP.NET vNext
 
Custom angular libraries
Custom angular librariesCustom angular libraries
Custom angular libraries
 
.Net Core
.Net Core.Net Core
.Net Core
 
SELF 2014: PBI v10: Application Management Made Easy
SELF 2014: PBI v10: Application Management Made EasySELF 2014: PBI v10: Application Management Made Easy
SELF 2014: PBI v10: Application Management Made Easy
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 

En vedette (20)

Nightingale Features Showcase
Nightingale Features ShowcaseNightingale Features Showcase
Nightingale Features Showcase
 
Building Mobile Apps on Salesforce Platform with Mobile SDK
Building Mobile Apps on Salesforce Platform with Mobile SDKBuilding Mobile Apps on Salesforce Platform with Mobile SDK
Building Mobile Apps on Salesforce Platform with Mobile SDK
 
The element of art
The element of artThe element of art
The element of art
 
24symbols. The Spotify Model for eBooks - Presentation
24symbols. The Spotify Model for eBooks - Presentation24symbols. The Spotify Model for eBooks - Presentation
24symbols. The Spotify Model for eBooks - Presentation
 
CómicSJ yang zu
CómicSJ yang  zuCómicSJ yang  zu
CómicSJ yang zu
 
Hosted Virtualization
Hosted VirtualizationHosted Virtualization
Hosted Virtualization
 
P1121327289
P1121327289P1121327289
P1121327289
 
P1121105111
P1121105111P1121105111
P1121105111
 
P1121102462
P1121102462P1121102462
P1121102462
 
The year you where born
The year you where bornThe year you where born
The year you where born
 
Parkour
ParkourParkour
Parkour
 
Great expectations
Great expectationsGreat expectations
Great expectations
 
P1121138815
P1121138815P1121138815
P1121138815
 
London
LondonLondon
London
 
Major_Proj_Ramya
Major_Proj_RamyaMajor_Proj_Ramya
Major_Proj_Ramya
 
P1131210137
P1131210137P1131210137
P1131210137
 
Footprints Of Disaster.Okspra Hndts
Footprints Of Disaster.Okspra HndtsFootprints Of Disaster.Okspra Hndts
Footprints Of Disaster.Okspra Hndts
 
P1131213152
P1131213152P1131213152
P1131213152
 
P1151139820
P1151139820P1151139820
P1151139820
 
An update on psychopharmacology part i 22 june 2007 fountain house
An update on psychopharmacology part i 22 june 2007 fountain houseAn update on psychopharmacology part i 22 june 2007 fountain house
An update on psychopharmacology part i 22 june 2007 fountain house
 

Similaire à Brief Introduction to the Mozilla Add-on SDK

CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...Ortus Solutions, Corp
 
Voxxed days Vilnius 2015 - Android Reverse Engineering Lab
Voxxed days Vilnius 2015 - Android Reverse Engineering LabVoxxed days Vilnius 2015 - Android Reverse Engineering Lab
Voxxed days Vilnius 2015 - Android Reverse Engineering LabRon Munitz
 
Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...Max Romanovsky
 
Symfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim RomanovskySymfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim Romanovskyphp-user-group-minsk
 
Informix Expedition Through Connectivity
Informix Expedition Through ConnectivityInformix Expedition Through Connectivity
Informix Expedition Through ConnectivityKevin Smith
 
OVERVIEW: Chromium Source Tree
OVERVIEW: Chromium Source TreeOVERVIEW: Chromium Source Tree
OVERVIEW: Chromium Source TreeChang W. Doh
 
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...OW2
 
DocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDoku
 
Android for Embedded Linux Developers
Android for Embedded Linux DevelopersAndroid for Embedded Linux Developers
Android for Embedded Linux DevelopersOpersys inc.
 
Moodle Development Best Pracitces
Moodle Development Best PracitcesMoodle Development Best Pracitces
Moodle Development Best PracitcesJustin Filip
 
Web technologies for desktop development
Web technologies for desktop developmentWeb technologies for desktop development
Web technologies for desktop developmentDarko Kukovec
 
Javascript Update May 2013
Javascript Update May 2013Javascript Update May 2013
Javascript Update May 2013Ramesh Nair
 
Build your apps everywhere with Lightning Web Components Open Source, Fabien ...
Build your apps everywhere with Lightning Web Components Open Source, Fabien ...Build your apps everywhere with Lightning Web Components Open Source, Fabien ...
Build your apps everywhere with Lightning Web Components Open Source, Fabien ...CzechDreamin
 
Update on the open source browser space (16th GENIVI AMM)
Update on the open source browser space (16th GENIVI AMM)Update on the open source browser space (16th GENIVI AMM)
Update on the open source browser space (16th GENIVI AMM)Igalia
 
Electron JS | Build cross-platform desktop applications with web technologies
Electron JS | Build cross-platform desktop applications with web technologiesElectron JS | Build cross-platform desktop applications with web technologies
Electron JS | Build cross-platform desktop applications with web technologiesBethmi Gunasekara
 
HTML, CSS & Javascript Architecture (extended version) - Jan Kraus
HTML, CSS & Javascript Architecture (extended version) - Jan KrausHTML, CSS & Javascript Architecture (extended version) - Jan Kraus
HTML, CSS & Javascript Architecture (extended version) - Jan KrausWomen in Technology Poland
 
Yocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDK
Yocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDKYocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDK
Yocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDKMarco Cavallini
 

Similaire à Brief Introduction to the Mozilla Add-on SDK (20)

CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
 
Introduction and course Details of Embedded Linux Platform Developer Training
Introduction and course Details of Embedded Linux Platform Developer TrainingIntroduction and course Details of Embedded Linux Platform Developer Training
Introduction and course Details of Embedded Linux Platform Developer Training
 
Voxxed days Vilnius 2015 - Android Reverse Engineering Lab
Voxxed days Vilnius 2015 - Android Reverse Engineering LabVoxxed days Vilnius 2015 - Android Reverse Engineering Lab
Voxxed days Vilnius 2015 - Android Reverse Engineering Lab
 
Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...
 
Symfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim RomanovskySymfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim Romanovsky
 
Informix Expedition Through Connectivity
Informix Expedition Through ConnectivityInformix Expedition Through Connectivity
Informix Expedition Through Connectivity
 
OVERVIEW: Chromium Source Tree
OVERVIEW: Chromium Source TreeOVERVIEW: Chromium Source Tree
OVERVIEW: Chromium Source Tree
 
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
 
DocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winner
 
Android for Embedded Linux Developers
Android for Embedded Linux DevelopersAndroid for Embedded Linux Developers
Android for Embedded Linux Developers
 
Moodle Development Best Pracitces
Moodle Development Best PracitcesMoodle Development Best Pracitces
Moodle Development Best Pracitces
 
Web technologies for desktop development
Web technologies for desktop developmentWeb technologies for desktop development
Web technologies for desktop development
 
Javascript Update May 2013
Javascript Update May 2013Javascript Update May 2013
Javascript Update May 2013
 
Build your apps everywhere with Lightning Web Components Open Source, Fabien ...
Build your apps everywhere with Lightning Web Components Open Source, Fabien ...Build your apps everywhere with Lightning Web Components Open Source, Fabien ...
Build your apps everywhere with Lightning Web Components Open Source, Fabien ...
 
Update on the open source browser space (16th GENIVI AMM)
Update on the open source browser space (16th GENIVI AMM)Update on the open source browser space (16th GENIVI AMM)
Update on the open source browser space (16th GENIVI AMM)
 
Electron JS | Build cross-platform desktop applications with web technologies
Electron JS | Build cross-platform desktop applications with web technologiesElectron JS | Build cross-platform desktop applications with web technologies
Electron JS | Build cross-platform desktop applications with web technologies
 
HTML, CSS & Javascript Architecture (extended version) - Jan Kraus
HTML, CSS & Javascript Architecture (extended version) - Jan KrausHTML, CSS & Javascript Architecture (extended version) - Jan Kraus
HTML, CSS & Javascript Architecture (extended version) - Jan Kraus
 
OpenCms Days 2015 Workflow using Docker and Jenkins
OpenCms Days 2015 Workflow using Docker and JenkinsOpenCms Days 2015 Workflow using Docker and Jenkins
OpenCms Days 2015 Workflow using Docker and Jenkins
 
Yocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDK
Yocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDKYocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDK
Yocto Project Dev Day Prague 2017 - Advanced class - Kernel modules with eSDK
 
Embedded Linux on ARM
Embedded Linux on ARMEmbedded Linux on ARM
Embedded Linux on ARM
 

Plus de Martin Giger

Nightingale Social & Cloud mockup
Nightingale Social & Cloud mockupNightingale Social & Cloud mockup
Nightingale Social & Cloud mockupMartin Giger
 
ig_chino plakat 2010
ig_chino plakat 2010ig_chino plakat 2010
ig_chino plakat 2010Martin Giger
 
ig_chino Flyer 2010
ig_chino Flyer 2010ig_chino Flyer 2010
ig_chino Flyer 2010Martin Giger
 
Open source software
Open source softwareOpen source software
Open source softwareMartin Giger
 
Friedrich Schiller
Friedrich SchillerFriedrich Schiller
Friedrich SchillerMartin Giger
 
Jacob Und Willhelm Grimm
Jacob Und Willhelm GrimmJacob Und Willhelm Grimm
Jacob Und Willhelm GrimmMartin Giger
 
Hochdruck oder Tiefdruck
Hochdruck oder TiefdruckHochdruck oder Tiefdruck
Hochdruck oder TiefdruckMartin Giger
 
Wie Funktioniert ein Hochregallager
Wie Funktioniert ein HochregallagerWie Funktioniert ein Hochregallager
Wie Funktioniert ein HochregallagerMartin Giger
 
BNSF Präsentation
BNSF PräsentationBNSF Präsentation
BNSF PräsentationMartin Giger
 
Staatsbankrott von Griechenland
Staatsbankrott von GriechenlandStaatsbankrott von Griechenland
Staatsbankrott von GriechenlandMartin Giger
 

Plus de Martin Giger (18)

Indexed db
Indexed dbIndexed db
Indexed db
 
Nightingale Social & Cloud mockup
Nightingale Social & Cloud mockupNightingale Social & Cloud mockup
Nightingale Social & Cloud mockup
 
Ozon / Melanom
Ozon / MelanomOzon / Melanom
Ozon / Melanom
 
ig_chino plakat 2010
ig_chino plakat 2010ig_chino plakat 2010
ig_chino plakat 2010
 
ig_chino Flyer 2010
ig_chino Flyer 2010ig_chino Flyer 2010
ig_chino Flyer 2010
 
Plakat 2009
Plakat 2009Plakat 2009
Plakat 2009
 
Open source software
Open source softwareOpen source software
Open source software
 
Was ist HDTV
Was ist HDTVWas ist HDTV
Was ist HDTV
 
Friedrich Schiller
Friedrich SchillerFriedrich Schiller
Friedrich Schiller
 
Jacob Und Willhelm Grimm
Jacob Und Willhelm GrimmJacob Und Willhelm Grimm
Jacob Und Willhelm Grimm
 
Hochdruck oder Tiefdruck
Hochdruck oder TiefdruckHochdruck oder Tiefdruck
Hochdruck oder Tiefdruck
 
Otto Waalkes
Otto WaalkesOtto Waalkes
Otto Waalkes
 
Wie Funktioniert ein Hochregallager
Wie Funktioniert ein HochregallagerWie Funktioniert ein Hochregallager
Wie Funktioniert ein Hochregallager
 
Ol Doinyo Lengai
Ol Doinyo LengaiOl Doinyo Lengai
Ol Doinyo Lengai
 
Fabian Unteregger
Fabian UntereggerFabian Unteregger
Fabian Unteregger
 
Schimmelpilze
SchimmelpilzeSchimmelpilze
Schimmelpilze
 
BNSF Präsentation
BNSF PräsentationBNSF Präsentation
BNSF Präsentation
 
Staatsbankrott von Griechenland
Staatsbankrott von GriechenlandStaatsbankrott von Griechenland
Staatsbankrott von Griechenland
 

Dernier

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 

Dernier (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

Brief Introduction to the Mozilla Add-on SDK

  • 2. I'm Martin aka freaktechnik ● Information Technology and Electrical Engineering student ● Euphonium player ● Nightingale Media Player developer ● Firefox Add-on developer
  • 3. Goals ● Basic Firefox Extension Knowledge ● Tools for Development ● Add-on SDK Extension Structure and API
  • 4. Firefox Extensions 3 Different Types
  • 5. Traditional Overlay Add-ons ● The old style ● Restart to apply ● Add content by overlaying documents ● XPCOM
  • 6. Bootstrapped Extensions ● Since Firefox 4 ● Restartless ● Everything is done with XPCOM
  • 7. Add-on SDK Extensions ● Compile to bootstrapped extensions ● CommonJS environement
  • 8. Base Knowledge ● JavaScript ● Maybe HTML and CSS ● XPCOM
  • 9. Tools ● Firefox ● CFX or JPM ● An editor
  • 10. JPM ● The 'compiler' apart from others ● Node based ● npm install jpm --global
  • 12. Basic Extension Structure ● lib →main modules ● data →misc files ● test →unit test modules ● package.json →add-on metadata
  • 13. Modules ● Where functionality is ● Prebuilt SDK modules ● 3rd party “libraries“ ● Custom modules for Add-on logic
  • 14. SDK Modules ● Split into high-level and low-level API modules ● High-level modules provide simple APIs for things like – Page content modification (sdk/page-mod) – Tabs (sdk/tabs) – Requests (sdk/request) – Buttons and toolbars (sdk/ui) – Panels (sdk/panel) – Clipboard (sdk/clipboard) – Passwords (sdk/passwords)
  • 15. Custom Modules ● Main loading point module (usually main.js) ● require() to import other modules ● exports object for public symbols
  • 16. Content Scripts ● Scripts that run in a browser context ● Still run in a separated sandbox ● They have access to the document's DOM ● port for communication
  • 17. Debugging ● Firefox 31 ● Always enabled via run command ● Content-scripts can't be reached
  • 18. XPCOM with Jetpack ● const { Cu, Ci, Cr, Cc } = require('chrome') ● Be nice to the global scope: const { jsm } = require('resource://some.jsm'); ● You can define components
  • 19. Future ● JPM release ● Integrated extension toolkit
  • 20. Help! ● MDN: https://developer.mozilla.org/en-US/Add-ons/SDK/ ● Sourcecode: https://github.com/mozilla/addon-sdk ● IRC: irc://irc.mozilla.org/jetpack ● Follow @MozillaCH on Twitter

Notes de l'éditeur

  1. AMO Questions/Understanding (bad at explaining) → ask them directly
  2. Just ZIP files Also Themes (no scripts anymore), langpacks and searchengines (sometimes recognized as normal extension)
  3. Components can be in nearly any language
  4. Manually load components → need to use JS to load binaries
  5. XPCOM API wrappers to commonjs → stable API (for example e10s doesn't affect you in most cases) SDK isn't bundled anymore with jpm...
  6. -> CommonJS and chrome JS, also everything is mozJS, no DOM etc.
  7. Init Run Xpi Test help (testall, -b etc.)
  8. Console output in console when run, else browser console (important, not web console)
  9. Quick, buuut, extreaction brackets