SlideShare a Scribd company logo
FIReFOX HARISHANKARAN Co-FOUNDER, INTERVIEWSTREET.COM
QUICK POLL 2
OPERATING SYSTEM? 3
HISTORY FORKED FROM THE MOZILLA SUITE SOFTWARE BLOAT OF MOZILLA SUITE (IRC, MAIL, NEWS, HTML EDITOR AND WHAT NOT) FF3, THE MOST DOWNLOADED SOFTWARE IN 24 HOURS (28,340,281 DOWNLOADS ON JUNE 17. BROWSER SHARE OF FIREFOX – 46% 4
WHAT IS AN EXTENSION? A TYPE OF “ADD-ONS” EXTENSIONS PLUGINS THEMES EXTENSIONS EXTEND YOUR BROWSER SINGLE FEATURE (HIDE MENUBAR) FEATURE ENHANCEMENT (NOSCRIPT) WEB APP INTEGRATION (TWITTERFOX) NEW FEATURES (FIREBUG) 5
EXTENSIONS 6,000 EXTENSIONS AND STILL COUNTING EXCELLENT  API  TO CREATE ANYTHING. EXTENSIONS  ARE MADE BY GOOGLE, FACEBOOK, MICROSOFT, YAHOO AND NOW EVEN YOU. 6
HELLO WORLD OUR FIRST EXTENSION. A MENU ITEM IN TOOL BAR ON CLICK, SHOWS A POPUP “HELLO WORLD” UPDATES STATUS BAR BY “YIPEE” 7
8
9
TECHNOLOGY 10
XUL XML USER INTERFACE LANGUAGE CROSS PLATFORM INTERFACE ELEMENTS https://developer.mozilla.org/en/xul http://www.hevanet.com/acorbin/xul/top.xul <button label="Press Me" oncommand = "alert(Hola!');"/> 11
XUL <menulist>  <menupopup>  <menuitem label="option 1" value="1"/>  <menuitem label="option 2" value="2"/>  <menuitem label="option 3" value="3"/>  <menuitem label="option 4" value="4"/> </menupopup>  </menulist> 12
CSS IT’S TRUE! CSS IS USED TO MODIFY USER INTERFACE #hello-menuitem {   color: red !important; } 13
JAVASCRIPT IT’S TRUE… AGAIN! HANDLES COMMANDS IN THE INTERFACE XMLHTTPREQUEST, DOM. ALSO HAS ACCESS TO CORE API onMenuItemCommand: function(e) { document.getElementById('hello-panel').label = "Yippee";     alert("Hello World");   }, 14
XPCOM Cross Platform Component Object Model The core or the “black box” of Firefox Similar to Microsoft’s COM or GNOME’s  Corba or D-Bus A Cross-platform API 15
SO… XPCOM IS THE “BRAIN” XUL  IS THE “SKELETON” JAVASCRIPT IS THE “MUSCLE” CSS IS THE “SKIN” 16
17
EXTENSION 18
FOLDER STRUCTURE 19
CONFUSING? TRUST ME IT’S NOT THAT HARD ;-) 20
LET’S CREATE THE EXTENSION https://addons.mozilla.org/en-US/developers/tools/builder Add-on Name : Hello World Description : This is my first Firefox extension. Add-on Version : 1.0.0 Unique ID : http://extensions.roachfiend.com/cgi-bin/guid.pl Package Name : hello Authors-name : <Your-name> Other contributors: <Friend’s name> 21
LET’S CREATE THE EXTENSION Applications to support : FF Pre-built features :  ,[object Object]
Main Menu CommandCreate My Add-on 22
EDIT THE FILES Now we add features to this extension. Windows: C:ocuments and Settingsaripplication Dataozillairefoxrofiles GNU/Linux: .mozilla/firefox/ 23
ff-overlay.xul  <menupopup id="menu_ToolsPopup"> <menuitem id="hello-hello" label="Hello World" oncommand="hello.onMenuItemCommand(event);"/>   </menupopup> 24
ff-overlay.xul  <statusbar id="status-bar"> 	<statusbarpanel id="hello-panel" label="" tooltiptext="" />   </statusbar> 25
overlay.js onMenuItemCommand: function(e) { document.getElementById('hello-panel').label = "Yippee"; 		alert("Hello World");   } 26
YOUR FIRST EXTENSION IS READY! 27
A BETTER EXTENSION GET UPDATES FROM TWITTER SHOW THE LAST UPDATE 28
HOW TO LEARN ALL THIS? 29
Before 1995 30
After 1995  31

More Related Content

What's hot

web browsers by Daniel rhenals
web browsers by Daniel rhenalsweb browsers by Daniel rhenals
web browsers by Daniel rhenals
danielrhenals
 
web browsers
web browsersweb browsers
web browsers
simonmartinez94
 
Browsers
BrowsersBrowsers
Browsers
Camilo Antia
 
Web browsers
Web       browsersWeb       browsers
Web browsers
fedelae
 
Window 10 ppt
Window 10 pptWindow 10 ppt
Window 10 ppt
Monu Jangid
 
Change Firefox Addon Version
Change Firefox Addon VersionChange Firefox Addon Version
Change Firefox Addon Version
Intizone @ Blogging Zone
 
Windows 10
Windows 10Windows 10
Windows 10
Neeraj Sharma
 
Web browsers
Web browsersWeb browsers
Web browsers
camilobuelvasr
 
surface pro x windows 11
surface pro x windows 11surface pro x windows 11
surface pro x windows 11
ssuser1eca7d
 
Firefox 4 & THE AFTER
Firefox 4 & THE AFTERFirefox 4 & THE AFTER
Firefox 4 & THE AFTER
dynamis
 
Banquet 08
Banquet 08Banquet 08
Banquet 08
Koubei UED
 
ハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作る
ハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作るハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作る
ハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作る
Shin Ise
 
Surfing of the internet
Surfing of the internetSurfing of the internet
Surfing of the internet
Maria Camila Garcia
 

What's hot (13)

web browsers by Daniel rhenals
web browsers by Daniel rhenalsweb browsers by Daniel rhenals
web browsers by Daniel rhenals
 
web browsers
web browsersweb browsers
web browsers
 
Browsers
BrowsersBrowsers
Browsers
 
Web browsers
Web       browsersWeb       browsers
Web browsers
 
Window 10 ppt
Window 10 pptWindow 10 ppt
Window 10 ppt
 
Change Firefox Addon Version
Change Firefox Addon VersionChange Firefox Addon Version
Change Firefox Addon Version
 
Windows 10
Windows 10Windows 10
Windows 10
 
Web browsers
Web browsersWeb browsers
Web browsers
 
surface pro x windows 11
surface pro x windows 11surface pro x windows 11
surface pro x windows 11
 
Firefox 4 & THE AFTER
Firefox 4 & THE AFTERFirefox 4 & THE AFTER
Firefox 4 & THE AFTER
 
Banquet 08
Banquet 08Banquet 08
Banquet 08
 
ハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作る
ハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作るハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作る
ハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作る
 
Surfing of the internet
Surfing of the internetSurfing of the internet
Surfing of the internet
 

Viewers also liked

Email - Good Practices
Email - Good PracticesEmail - Good Practices
Email - Good Practices
Harishankaran K
 
Hug a startup
Hug a startupHug a startup
Hug a startup
Harishankaran K
 
Spider Course Day 1
Spider Course Day 1Spider Course Day 1
Spider Course Day 1
Harishankaran K
 
The Cloud Platform Play
The Cloud Platform PlayThe Cloud Platform Play
The Cloud Platform Play
Matthias Steiner
 
Unsupervised Learning and Modeling of Knowledge and Intent for Spoken Dialogu...
Unsupervised Learning and Modeling of Knowledge and Intent for Spoken Dialogu...Unsupervised Learning and Modeling of Knowledge and Intent for Spoken Dialogu...
Unsupervised Learning and Modeling of Knowledge and Intent for Spoken Dialogu...
Yun-Nung (Vivian) Chen
 
Unsupervised Learning and Modeling of Knowledge and Intent for Spoken Dialogu...
Unsupervised Learning and Modeling of Knowledge and Intent for Spoken Dialogu...Unsupervised Learning and Modeling of Knowledge and Intent for Spoken Dialogu...
Unsupervised Learning and Modeling of Knowledge and Intent for Spoken Dialogu...
Yun-Nung (Vivian) Chen
 
Calendario Bibliotecas Universidad de Salamanca 2010
Calendario Bibliotecas Universidad de Salamanca 2010Calendario Bibliotecas Universidad de Salamanca 2010
Calendario Bibliotecas Universidad de Salamanca 2010
JA Merlo Vega USAL
 
Savage, Savage, &amp; Brown, Inc
Savage, Savage, &amp; Brown, IncSavage, Savage, &amp; Brown, Inc
Savage, Savage, &amp; Brown, Inc
dallaswilliams
 
Louise Li - Gloucestershire Population Projections Using Locally Derived Popu...
Louise Li - Gloucestershire Population Projections Using Locally Derived Popu...Louise Li - Gloucestershire Population Projections Using Locally Derived Popu...
Louise Li - Gloucestershire Population Projections Using Locally Derived Popu...
South West Observatory
 
Wcf Project Design 2012
Wcf Project Design 2012Wcf Project Design 2012
Wcf Project Design 2012
Woman's Cancer Foundation
 
Nigel Swier ONS - Migration Statistics Improvement Work
Nigel Swier ONS - Migration Statistics Improvement WorkNigel Swier ONS - Migration Statistics Improvement Work
Nigel Swier ONS - Migration Statistics Improvement Work
South West Observatory
 
Chua Cop Thai Lan
Chua Cop Thai LanChua Cop Thai Lan
Chua Cop Thai Lanvbtuoc
 
ว1306
ว1306ว1306
ว1306
peoplemedia
 
Semantic-based Segmentation and Annotation of 3D Models
Semantic-based Segmentation and Annotation of 3D ModelsSemantic-based Segmentation and Annotation of 3D Models
Semantic-based Segmentation and Annotation of 3D Models
University PARIS-SUD
 
The War Years Notes 3
The War Years Notes 3The War Years Notes 3
The War Years Notes 3
wesleybatcheller
 
Meet The Officers Fall 2009
Meet The Officers Fall 2009Meet The Officers Fall 2009
Meet The Officers Fall 2009
UMAatCal
 
Ilona Ignatuhhina
Ilona IgnatuhhinaIlona Ignatuhhina
Ilona Ignatuhhina
gilona
 
Gurukul Training Initiative
Gurukul Training InitiativeGurukul Training Initiative
Gurukul Training Initiative
hooduku
 
A 2 The Key Atomic Bomb Events of the Cold War, class 2, Fall 2011 and Spring...
A 2 The Key Atomic Bomb Events of the Cold War, class 2, Fall 2011 and Spring...A 2 The Key Atomic Bomb Events of the Cold War, class 2, Fall 2011 and Spring...

Viewers also liked (20)

Email - Good Practices
Email - Good PracticesEmail - Good Practices
Email - Good Practices
 
Hug a startup
Hug a startupHug a startup
Hug a startup
 
Spider Course Day 1
Spider Course Day 1Spider Course Day 1
Spider Course Day 1
 
The Cloud Platform Play
The Cloud Platform PlayThe Cloud Platform Play
The Cloud Platform Play
 
Unsupervised Learning and Modeling of Knowledge and Intent for Spoken Dialogu...
Unsupervised Learning and Modeling of Knowledge and Intent for Spoken Dialogu...Unsupervised Learning and Modeling of Knowledge and Intent for Spoken Dialogu...
Unsupervised Learning and Modeling of Knowledge and Intent for Spoken Dialogu...
 
Unsupervised Learning and Modeling of Knowledge and Intent for Spoken Dialogu...
Unsupervised Learning and Modeling of Knowledge and Intent for Spoken Dialogu...Unsupervised Learning and Modeling of Knowledge and Intent for Spoken Dialogu...
Unsupervised Learning and Modeling of Knowledge and Intent for Spoken Dialogu...
 
Calendario Bibliotecas Universidad de Salamanca 2010
Calendario Bibliotecas Universidad de Salamanca 2010Calendario Bibliotecas Universidad de Salamanca 2010
Calendario Bibliotecas Universidad de Salamanca 2010
 
Savage, Savage, &amp; Brown, Inc
Savage, Savage, &amp; Brown, IncSavage, Savage, &amp; Brown, Inc
Savage, Savage, &amp; Brown, Inc
 
Louise Li - Gloucestershire Population Projections Using Locally Derived Popu...
Louise Li - Gloucestershire Population Projections Using Locally Derived Popu...Louise Li - Gloucestershire Population Projections Using Locally Derived Popu...
Louise Li - Gloucestershire Population Projections Using Locally Derived Popu...
 
Wcf Project Design 2012
Wcf Project Design 2012Wcf Project Design 2012
Wcf Project Design 2012
 
Nigel Swier ONS - Migration Statistics Improvement Work
Nigel Swier ONS - Migration Statistics Improvement WorkNigel Swier ONS - Migration Statistics Improvement Work
Nigel Swier ONS - Migration Statistics Improvement Work
 
Chua Cop Thai Lan
Chua Cop Thai LanChua Cop Thai Lan
Chua Cop Thai Lan
 
ว1306
ว1306ว1306
ว1306
 
Semantic-based Segmentation and Annotation of 3D Models
Semantic-based Segmentation and Annotation of 3D ModelsSemantic-based Segmentation and Annotation of 3D Models
Semantic-based Segmentation and Annotation of 3D Models
 
The War Years Notes 3
The War Years Notes 3The War Years Notes 3
The War Years Notes 3
 
Meet The Officers Fall 2009
Meet The Officers Fall 2009Meet The Officers Fall 2009
Meet The Officers Fall 2009
 
Ilona Ignatuhhina
Ilona IgnatuhhinaIlona Ignatuhhina
Ilona Ignatuhhina
 
Gurukul Training Initiative
Gurukul Training InitiativeGurukul Training Initiative
Gurukul Training Initiative
 
A 2 The Key Atomic Bomb Events of the Cold War, class 2, Fall 2011 and Spring...
A 2 The Key Atomic Bomb Events of the Cold War, class 2, Fall 2011 and Spring...A 2 The Key Atomic Bomb Events of the Cold War, class 2, Fall 2011 and Spring...
A 2 The Key Atomic Bomb Events of the Cold War, class 2, Fall 2011 and Spring...
 
11 439
11 43911 439
11 439
 

Similar to HungryFox - Firefox Extension Workshop

Browsers
BrowsersBrowsers
Browsers
mariabeatrizp
 
Browsers
BrowsersBrowsers
Browsers
mariabeatrizp
 
Browsers
BrowsersBrowsers
Browsers
mariabeatrizp
 
Browsers
BrowsersBrowsers
Browsers
mariabeatrizp
 
Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3
Asher Martin
 
Getting started contributing Firefox OS
Getting started contributing Firefox OSGetting started contributing Firefox OS
Getting started contributing Firefox OS
Mozilla Firefox
 
Browsers
BrowsersBrowsers
Browsers
Laura Rubio
 
Browsers
BrowsersBrowsers
Browsers
Laura Rubio
 
So what's the Deal with Firefox OS - MobileTechCon Berlin 2014
So what's the Deal with Firefox OS - MobileTechCon Berlin 2014So what's the Deal with Firefox OS - MobileTechCon Berlin 2014
So what's the Deal with Firefox OS - MobileTechCon Berlin 2014
Christian Heilmann
 
Browsers
BrowsersBrowsers
Browsers
danielmantillab
 
Browsers
BrowsersBrowsers
Browsers
Abraham Sierra
 
Browsers
BrowsersBrowsers
Browsers
Abraham Sierra
 
Browsers
BrowsersBrowsers
Browsers
victorgarcia95
 
Browsers by NGE
Browsers by NGEBrowsers by NGE
Browsers by NGE
Nicolas Espinosa
 
Browsers
BrowsersBrowsers
Browsers
mafecarvajalb
 
(Christian heilman) firefox
(Christian heilman) firefox(Christian heilman) firefox
(Christian heilman) firefox
NAVER D2
 
browsers MEZH
browsers MEZHbrowsers MEZH
Foss Presentation
Foss PresentationFoss Presentation
Foss Presentation
Ahmed Mekkawy
 
Surfing of the internet
Surfing of the internetSurfing of the internet
Surfing of the internet
Maria Camila Garcia
 
Web browsers
Web browsersWeb browsers
Web browsers
carlos19995
 

Similar to HungryFox - Firefox Extension Workshop (20)

Browsers
BrowsersBrowsers
Browsers
 
Browsers
BrowsersBrowsers
Browsers
 
Browsers
BrowsersBrowsers
Browsers
 
Browsers
BrowsersBrowsers
Browsers
 
Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3
 
Getting started contributing Firefox OS
Getting started contributing Firefox OSGetting started contributing Firefox OS
Getting started contributing Firefox OS
 
Browsers
BrowsersBrowsers
Browsers
 
Browsers
BrowsersBrowsers
Browsers
 
So what's the Deal with Firefox OS - MobileTechCon Berlin 2014
So what's the Deal with Firefox OS - MobileTechCon Berlin 2014So what's the Deal with Firefox OS - MobileTechCon Berlin 2014
So what's the Deal with Firefox OS - MobileTechCon Berlin 2014
 
Browsers
BrowsersBrowsers
Browsers
 
Browsers
BrowsersBrowsers
Browsers
 
Browsers
BrowsersBrowsers
Browsers
 
Browsers
BrowsersBrowsers
Browsers
 
Browsers by NGE
Browsers by NGEBrowsers by NGE
Browsers by NGE
 
Browsers
BrowsersBrowsers
Browsers
 
(Christian heilman) firefox
(Christian heilman) firefox(Christian heilman) firefox
(Christian heilman) firefox
 
browsers MEZH
browsers MEZHbrowsers MEZH
browsers MEZH
 
Foss Presentation
Foss PresentationFoss Presentation
Foss Presentation
 
Surfing of the internet
Surfing of the internetSurfing of the internet
Surfing of the internet
 
Web browsers
Web browsersWeb browsers
Web browsers
 

Recently uploaded

JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)
HarpalGohil4
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdfLee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
leebarnesutopia
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
DanBrown980551
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Neo4j
 
Day 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio FundamentalsDay 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio Fundamentals
UiPathCommunity
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
"What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w..."What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w...
Fwdays
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
UiPathCommunity
 
Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!
Ortus Solutions, Corp
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
DianaGray10
 
What is an RPA CoE? Session 2 – CoE Roles
What is an RPA CoE?  Session 2 – CoE RolesWhat is an RPA CoE?  Session 2 – CoE Roles
What is an RPA CoE? Session 2 – CoE Roles
DianaGray10
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
ScyllaDB
 
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeckPoznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
FilipTomaszewski5
 
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's TipsGetting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
ScyllaDB
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
christinelarrosa
 

Recently uploaded (20)

JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)AWS Certified Solutions Architect Associate (SAA-C03)
AWS Certified Solutions Architect Associate (SAA-C03)
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdfLee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
Lee Barnes - Path to Becoming an Effective Test Automation Engineer.pdf
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
 
Day 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio FundamentalsDay 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio Fundamentals
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
"What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w..."What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w...
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
 
Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
 
What is an RPA CoE? Session 2 – CoE Roles
What is an RPA CoE?  Session 2 – CoE RolesWhat is an RPA CoE?  Session 2 – CoE Roles
What is an RPA CoE? Session 2 – CoE Roles
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
 
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeckPoznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
 
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's TipsGetting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
 

HungryFox - Firefox Extension Workshop

  • 1. FIReFOX HARISHANKARAN Co-FOUNDER, INTERVIEWSTREET.COM
  • 4. HISTORY FORKED FROM THE MOZILLA SUITE SOFTWARE BLOAT OF MOZILLA SUITE (IRC, MAIL, NEWS, HTML EDITOR AND WHAT NOT) FF3, THE MOST DOWNLOADED SOFTWARE IN 24 HOURS (28,340,281 DOWNLOADS ON JUNE 17. BROWSER SHARE OF FIREFOX – 46% 4
  • 5. WHAT IS AN EXTENSION? A TYPE OF “ADD-ONS” EXTENSIONS PLUGINS THEMES EXTENSIONS EXTEND YOUR BROWSER SINGLE FEATURE (HIDE MENUBAR) FEATURE ENHANCEMENT (NOSCRIPT) WEB APP INTEGRATION (TWITTERFOX) NEW FEATURES (FIREBUG) 5
  • 6. EXTENSIONS 6,000 EXTENSIONS AND STILL COUNTING EXCELLENT API TO CREATE ANYTHING. EXTENSIONS ARE MADE BY GOOGLE, FACEBOOK, MICROSOFT, YAHOO AND NOW EVEN YOU. 6
  • 7. HELLO WORLD OUR FIRST EXTENSION. A MENU ITEM IN TOOL BAR ON CLICK, SHOWS A POPUP “HELLO WORLD” UPDATES STATUS BAR BY “YIPEE” 7
  • 8. 8
  • 9. 9
  • 11. XUL XML USER INTERFACE LANGUAGE CROSS PLATFORM INTERFACE ELEMENTS https://developer.mozilla.org/en/xul http://www.hevanet.com/acorbin/xul/top.xul <button label="Press Me" oncommand = "alert(Hola!');"/> 11
  • 12. XUL <menulist> <menupopup> <menuitem label="option 1" value="1"/> <menuitem label="option 2" value="2"/> <menuitem label="option 3" value="3"/> <menuitem label="option 4" value="4"/> </menupopup> </menulist> 12
  • 13. CSS IT’S TRUE! CSS IS USED TO MODIFY USER INTERFACE #hello-menuitem { color: red !important; } 13
  • 14. JAVASCRIPT IT’S TRUE… AGAIN! HANDLES COMMANDS IN THE INTERFACE XMLHTTPREQUEST, DOM. ALSO HAS ACCESS TO CORE API onMenuItemCommand: function(e) { document.getElementById('hello-panel').label = "Yippee"; alert("Hello World"); }, 14
  • 15. XPCOM Cross Platform Component Object Model The core or the “black box” of Firefox Similar to Microsoft’s COM or GNOME’s Corba or D-Bus A Cross-platform API 15
  • 16. SO… XPCOM IS THE “BRAIN” XUL IS THE “SKELETON” JAVASCRIPT IS THE “MUSCLE” CSS IS THE “SKIN” 16
  • 17. 17
  • 20. CONFUSING? TRUST ME IT’S NOT THAT HARD ;-) 20
  • 21. LET’S CREATE THE EXTENSION https://addons.mozilla.org/en-US/developers/tools/builder Add-on Name : Hello World Description : This is my first Firefox extension. Add-on Version : 1.0.0 Unique ID : http://extensions.roachfiend.com/cgi-bin/guid.pl Package Name : hello Authors-name : <Your-name> Other contributors: <Friend’s name> 21
  • 22.
  • 23. Main Menu CommandCreate My Add-on 22
  • 24. EDIT THE FILES Now we add features to this extension. Windows: C:ocuments and Settingsaripplication Dataozillairefoxrofiles GNU/Linux: .mozilla/firefox/ 23
  • 25. ff-overlay.xul <menupopup id="menu_ToolsPopup"> <menuitem id="hello-hello" label="Hello World" oncommand="hello.onMenuItemCommand(event);"/> </menupopup> 24
  • 26. ff-overlay.xul <statusbar id="status-bar"> <statusbarpanel id="hello-panel" label="" tooltiptext="" /> </statusbar> 25
  • 27. overlay.js onMenuItemCommand: function(e) { document.getElementById('hello-panel').label = "Yippee"; alert("Hello World"); } 26
  • 28. YOUR FIRST EXTENSION IS READY! 27
  • 29. A BETTER EXTENSION GET UPDATES FROM TWITTER SHOW THE LAST UPDATE 28
  • 30. HOW TO LEARN ALL THIS? 29
  • 33. THE END  hari@interviewstreet.com http://twitter.com/sp2hari 32