SlideShare a Scribd company logo
1 of 32
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 rhenalsdanielrhenals
 
Web browsers
Web       browsersWeb       browsers
Web browsersfedelae
 
surface pro x windows 11
surface pro x windows 11surface pro x windows 11
surface pro x windows 11ssuser1eca7d
 
Firefox 4 & THE AFTER
Firefox 4 & THE AFTERFirefox 4 & THE AFTER
Firefox 4 & THE AFTERdynamis
 
ハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作る
ハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作るハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作る
ハブインテグレーションでWindows Phone 7の世界に溶け込むアプリを作るShin Ise
 

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

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 2010JA Merlo Vega USAL
 
Savage, Savage, &amp; Brown, Inc
Savage, Savage, &amp; Brown, IncSavage, Savage, &amp; Brown, Inc
Savage, Savage, &amp; Brown, Incdallaswilliams
 
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
 
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 WorkSouth West Observatory
 
Chua Cop Thai Lan
Chua Cop Thai LanChua Cop Thai Lan
Chua Cop Thai Lanvbtuoc
 
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 ModelsUniversity PARIS-SUD
 
Meet The Officers Fall 2009
Meet The Officers Fall 2009Meet The Officers Fall 2009
Meet The Officers Fall 2009UMAatCal
 
Ilona Ignatuhhina
Ilona IgnatuhhinaIlona Ignatuhhina
Ilona Ignatuhhinagilona
 
Gurukul Training Initiative
Gurukul Training InitiativeGurukul Training Initiative
Gurukul Training Initiativehooduku
 

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

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

The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?Mark Billinghurst
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Julian Hyde
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...FIDO Alliance
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfFIDO Alliance
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeCzechDreamin
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceSamy Fodil
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераMark Opanasiuk
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfUK Journal
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...CzechDreamin
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGDSC PJATK
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxDavid Michel
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxJennifer Lim
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024Stephen Perrenod
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPTiSEO AI
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityScyllaDB
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireExakis Nelite
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandIES VE
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlPeter Udo Diehl
 

Recently uploaded (20)

The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & Ireland
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 

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