FIReFOXHARISHANKARANCo-FOUNDER, INTERVIEWSTREET.COM
QUICK POLL2
OPERATING SYSTEM?3
HISTORYFORKED FROM THE MOZILLA SUITESOFTWARE 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”EXTENSIONSPLUGINSTHEMESEXTENSIONS EXTEND YOUR BROWSERSINGLE FEATURE (HIDE MENUBAR)FEATURE ENHANCEMENT (NOSCRIPT)WEB APP INTEGRATION (TWITTERFOX)NEW FEATURES (FIREBUG)5
EXTENSIONS6,000 EXTENSIONS AND STILL COUNTINGEXCELLENT  API  TO CREATE ANYTHING.EXTENSIONS  ARE MADE BY GOOGLE, FACEBOOK, MICROSOFT, YAHOO AND NOW EVEN YOU.6
HELLO WORLDOUR FIRST EXTENSION.A MENU ITEM IN TOOL BARON CLICK, SHOWS A POPUP “HELLO WORLD”UPDATES STATUS BAR BY “YIPEE”7
8
9
TECHNOLOGY10
XULXML USER INTERFACE LANGUAGECROSS PLATFORM INTERFACE ELEMENTShttps://developer.mozilla.org/en/xulhttp://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
CSSIT’S TRUE!CSS IS USED TO MODIFY USER INTERFACE#hello-menuitem{  color: red !important;}13
JAVASCRIPTIT’S TRUE… AGAIN!HANDLES COMMANDS IN THE INTERFACEXMLHTTPREQUEST, DOM.ALSO HAS ACCESS TO CORE APIonMenuItemCommand: function(e) {document.getElementById('hello-panel').label = "Yippee";    alert("Hello World");  },14
XPCOMCross Platform Component Object ModelThe core or the “black box” of FirefoxSimilar to Microsoft’s COM or GNOME’s  Corba or D-BusA Cross-platform API15
SO…XPCOM IS THE “BRAIN”XUL  IS THE “SKELETON”JAVASCRIPT IS THE “MUSCLE”CSS IS THE “SKIN”16
17
EXTENSION18
FOLDER STRUCTURE19
CONFUSING?TRUST MEIT’S NOT THAT HARD ;-)20
LET’S CREATE THE EXTENSIONhttps://addons.mozilla.org/en-US/developers/tools/builderAdd-on Name : Hello WorldDescription : This is my first Firefox extension.Add-on Version : 1.0.0Unique ID : http://extensions.roachfiend.com/cgi-bin/guid.plPackage Name : helloAuthors-name : <Your-name>Other contributors: <Friend’s name>21
LET’S CREATE THE EXTENSIONApplications to support : FFPre-built features : About Dialog
Main Menu CommandCreate My Add-on22
EDIT THE FILESNow we add features to this extension.Windows: C:\Documents and Settings\hari\Application Data\Mozilla\Firefox\ProfilesGNU/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.jsonMenuItemCommand: function(e) {document.getElementById('hello-panel').label = "Yippee";		alert("Hello World");  }26
YOUR FIRST EXTENSION IS READY!27
A BETTER EXTENSIONGET UPDATES FROM TWITTERSHOW THE LAST UPDATE28
HOW TO LEARN ALL THIS?29
Before 199530
After 1995 31

HungryFox - Firefox Extension Workshop