SlideShare ist ein Scribd-Unternehmen logo
1 von 72
Downloaden Sie, um offline zu lesen
YZU Open Source Software Community Lecture
OSSF / MozTW / YZU CSE




                         The Secret in the
            Extension Development
               for Mozilla Firefox
                      by Littlebtc (Hsiao-Ting Yu)




                 The text of the slide is under CC-BY-SA-3.0.
                 Most photos are under CC-BY-SA compatible license,
                 while screenshots / logos are under Fair Use.
Me
• Undergraduate major in EE in NTU
• A Programmer (PHP)
• A Web Developer
  – HTML/CSS
  – Mozilla Technique (NicoFox)
http://littlebtc.blogspot.com
FREE SOFTWARE?
OPEN SOURCE?
FREE SOFTWARE?
→You can use, distribute and modify the software
without restriction.
OPEN SOURCE?
→The source code of software should be available and
modification should not be restricted.
OSSF
• A project in the Institute of Information Science of Academia
  Sinica
• Spread the Free / Open source software spirit
• Support Free/Open Source Software community in Taiwan
MozTW http://moztw.org/
• A Community in Taiwan spreading the Firefox and Mozilla-related software
• Translate Firefox/Thunderbird/… to Traditional Chinese
• It is not so technical! It is a community devoting to improve your web
  experience.




                                                       http://www.flickr.com/photos/bobchao/3049469807/
     http://www.flickr.com/photos/othree/3147927774/
In my personal view:

WEB HISTORY
Browser Wars
Browser War I
• I started to surf the Internet since 1997, using
  36.6K Modem
• At that time, the most popular browser is
  Netscape, while I am an IE fans :p

• No AJAX, no CSS (<table> layouts)
• No rich media: Speed of Internet is still very
  slow
Yahoo! In 1998




                 ( From archive.org )
IE4




(From Wikipedia)
Browser War I
• Why Internet Explorer wins: (I think that)
  – FREE of charge & bundled with Windows
  – Development of IE was active
  – Killer Applications: FrontPage
  – DHTML, CSS, VBScript support
  – Netscape got in troubles: rewrite, lost AOL
    support, etc.
In 2001-2004

IE6 is the de-facto
 standard!
“A-Kuei” (2000-)
2001: Wikipedia
My Web work in 2002
…continued
The change of the web
• 2004: Gmail
• AJAX becomes a popular technique
And the browser wars II
• 2004: The grow of Firefox




                              (From Wikipedia)
2005: YouTube
2005: Writely (Google Docs today)




    http://www.flickr.com/photos/googlisti/217887352/
2007: Nico Nico Douga
The generation of RIA

• 2007:
 –HTML5 adopted by W3C
 –Microsoft Silverlight
• 2008:
 –Adobe AIR & Flex 3
2009: MozTW <audio> Demo




 http://moztw.org/demo/audioplayer/
Photo: http://www.flickr.com/photos/ews/2603070503/
 
     CC-BY-2.0 by JP Puerta
 
To make Internet Better!

Mozilla and Mozilla Firefox
“Mozilla”
• Originally, it is Netscape’s codename
• 1998: Mozilla Organization: “Co-ordinate” the
  development of Netscape
• Netscape 6 & 7 : Not so success
• 2003: Browser(Firefox)/Mail(Thunderbird)
  Netscape closed down
  Independent Mozilla Foundation
The Mozilla Manifesto

“Make the Internet an ever
 better place for everyone.”
Firefox
Why Firefox?
• Free and Open Source Software
• A browser that is easy to use
• Highly web standard compatible
• And also easy to extend!
• Every Firefox can be different!
Firefox Extensions…
addons.mozilla.org
NicoFox
• ~5000 Users
Extensions
• One of the “Add-ons”:
  – Extensions, Themes, Plugin
• “Extend” your browser
  – Provide more features
  – Fix some problem
  – Integrate with sites or applications
Extensions with Single Feature…
• Locationbar2




• Hide Menubar (Made in Taiwan!)

          After Press Alt
Extensions with Feature
            Enhancements
• NoScript
Web Application Integration
•   TwitterFox
•   GmailManager
•   Forestfox
•   S3Fox
    (For Amazon S3)
Extension with New Feature(s)
• AdBlock Plus
Extensions with New Feature(s)
• New Tong Wen Tang
  – Conversion between Chinese characters
Extensions with New Feature(s)
 • IE Tab: Use IE engine in a Firefox tab
 • Made in Taiwan!
Extensions with New Feature(s)
• Stylish (Custom CSS for every site & user interface)
• FireGuestures




• And more!
Application Level
• Sage
• Scrapbook
• Firebug
One trick
• Together with Foxkeh
• Glasser
  – Apply Vista / 7 Aero Glass in toolbar
Hacking the Firefox!

GO TO THE TECHNIQUE PART
This is the Firefox…
… and this is part of the the
 “Main Browser Window”.
Wait? Wait!




 Is this HTML / JavaScript?
=> No, but something similar to this
• “Write” Interface in an XML
 XML User Interface     text format
 Language
                        – Just Like write web pages in
 XUL                      HTML
                  • Cross-platform interface
                    elements
THERE IS NO DATA.
THERE IS ONLY XUL.


<button />
• Used in both web and
                                  program!
   Easy but
   powerful                     • A major part of the
   JavaScript                     source code in Mozilla
                                  Firefox is in JavaScript!
                                • JavaScript in Firefox core
 Web
                                  is able to access some
<script type=“text/javascript”>   core API
alert(‘Hello World!’);
</script>
                                                        Firefox Core
                           <script type=“x-application/javascript”>
                                              alert(‘Hello World!’);
                                                          </script>
• In Web: A powerful and
                     modern styling language
 Make Your Style
                   • In Firefox Core: Still
 CSS                 powerful to design interface
                     in detail
                     – Styling toolbar, button, and
Web
                       more…
h1 {
font-size: 160%;
color: #999999;
}
                                          Firefox Core
                                                label{
                                        width: 500px;
                                                     }
Ways to custom your Firefox?
Method                     Website                          Application (Firefox, …)
User Style Sheets (CSS)    UserContent.css, Stylish         UserChrome.css
User Script (JavaScript)   Bookmarklet, Greasemonkey        UserChrome.js
Extensions                                     Easy but powerful
Themes                     (Not supported)                  Very flexible
How developer actually develop their extension

Go for it!
developer.mozilla.org
Set up the environment
Read lots of code
Look for other’s source
Try and Error
This is what I write…
This is what it appears
Sometimes it is not your fault…
• It is Firefox’s Bug! 
• It is something’s restrictions!
• It needs a complex way to bypass the problem!
  Orz
Sometimes it is not you fault
• The document is incomplete or even
  completely wrong
• You need to try it!

• Or… Find if some people had tried it!
The Hard Work




The player tooks me almost 50 hours!
The Hard Work
October 22           October 29
November 29
Dec 10
Feb 14
Still Complex
September 2008 (After two months of hard work!)




December 2008
Feedback
Take the Shortcut
About the Courses
•   Speaker: Me
•   5/9, 5/23 09:00-17:00
•   Near Taipei Main Station
•   XUL, JavaScript, and more!
We have a “Chapter 0”!
http://www.flickr.com/photos/bobchao/3325341079/


See you!

THANK YOU!

Weitere ähnliche Inhalte

Was ist angesagt?

Web Browsers
Web BrowsersWeb Browsers
Web Browsersfaustynj
 
Mmmm, chocolatey goodness!
Mmmm, chocolatey goodness!Mmmm, chocolatey goodness!
Mmmm, chocolatey goodness!Gary Park
 
Why Open Web Standards are cool and will save the world. Or the Web, at least.
Why Open Web Standards are cool and will save the world. Or the Web, at least.Why Open Web Standards are cool and will save the world. Or the Web, at least.
Why Open Web Standards are cool and will save the world. Or the Web, at least.brucelawson
 
Basic Wordpress PPT
Basic Wordpress PPT Basic Wordpress PPT
Basic Wordpress PPT mayur akabari
 
Best Friend || Worst Enemy: WordPress Multisite
Best Friend || Worst Enemy: WordPress MultisiteBest Friend || Worst Enemy: WordPress Multisite
Best Friend || Worst Enemy: WordPress MultisiteTaylor McCaslin
 
Bruce lawson-over-the-air
Bruce lawson-over-the-airBruce lawson-over-the-air
Bruce lawson-over-the-airbrucelawson
 
Bruce Lawson, Web Development 2.0, SparkUp! Poznan Poland
Bruce Lawson, Web Development 2.0, SparkUp! Poznan PolandBruce Lawson, Web Development 2.0, SparkUp! Poznan Poland
Bruce Lawson, Web Development 2.0, SparkUp! Poznan Polandbrucelawson
 
Uni Tour Germany 11.2009
Uni Tour Germany 11.2009Uni Tour Germany 11.2009
Uni Tour Germany 11.2009Patrick Lauke
 
Easily Manage Software on Windows with Chocolatey - PuppetConf 2016
Easily Manage Software on Windows with Chocolatey - PuppetConf 2016Easily Manage Software on Windows with Chocolatey - PuppetConf 2016
Easily Manage Software on Windows with Chocolatey - PuppetConf 2016Rob Reynolds
 
Research on Web Browsers ppt
Research on Web Browsers pptResearch on Web Browsers ppt
Research on Web Browsers pptSagar Agarwal
 
Using Composer to create manageable WordPress websites
Using Composer to create manageable WordPress websitesUsing Composer to create manageable WordPress websites
Using Composer to create manageable WordPress websitesAnna Ladoshkina
 
Introduction to Wordpress
Introduction to WordpressIntroduction to Wordpress
Introduction to WordpressSandy Ratliff
 
Web Browser ! Batra Computer Centre
Web Browser ! Batra Computer CentreWeb Browser ! Batra Computer Centre
Web Browser ! Batra Computer Centrejatin batra
 

Was ist angesagt? (20)

Web Browsers
Web BrowsersWeb Browsers
Web Browsers
 
Mmmm, chocolatey goodness!
Mmmm, chocolatey goodness!Mmmm, chocolatey goodness!
Mmmm, chocolatey goodness!
 
Why Open Web Standards are cool and will save the world. Or the Web, at least.
Why Open Web Standards are cool and will save the world. Or the Web, at least.Why Open Web Standards are cool and will save the world. Or the Web, at least.
Why Open Web Standards are cool and will save the world. Or the Web, at least.
 
WEB BROWSER
WEB BROWSERWEB BROWSER
WEB BROWSER
 
Basic Wordpress PPT
Basic Wordpress PPT Basic Wordpress PPT
Basic Wordpress PPT
 
Best Friend || Worst Enemy: WordPress Multisite
Best Friend || Worst Enemy: WordPress MultisiteBest Friend || Worst Enemy: WordPress Multisite
Best Friend || Worst Enemy: WordPress Multisite
 
Bruce lawson-over-the-air
Bruce lawson-over-the-airBruce lawson-over-the-air
Bruce lawson-over-the-air
 
Bruce Lawson, Web Development 2.0, SparkUp! Poznan Poland
Bruce Lawson, Web Development 2.0, SparkUp! Poznan PolandBruce Lawson, Web Development 2.0, SparkUp! Poznan Poland
Bruce Lawson, Web Development 2.0, SparkUp! Poznan Poland
 
Uni Tour Germany 11.2009
Uni Tour Germany 11.2009Uni Tour Germany 11.2009
Uni Tour Germany 11.2009
 
Intro to Wordpress
Intro to WordpressIntro to Wordpress
Intro to Wordpress
 
Browser security — ROOTS
Browser security — ROOTSBrowser security — ROOTS
Browser security — ROOTS
 
Firefox 3 Thai inbreif
Firefox 3 Thai inbreifFirefox 3 Thai inbreif
Firefox 3 Thai inbreif
 
Easily Manage Software on Windows with Chocolatey - PuppetConf 2016
Easily Manage Software on Windows with Chocolatey - PuppetConf 2016Easily Manage Software on Windows with Chocolatey - PuppetConf 2016
Easily Manage Software on Windows with Chocolatey - PuppetConf 2016
 
Research on Web Browsers ppt
Research on Web Browsers pptResearch on Web Browsers ppt
Research on Web Browsers ppt
 
Web Browser
Web BrowserWeb Browser
Web Browser
 
Using Composer to create manageable WordPress websites
Using Composer to create manageable WordPress websitesUsing Composer to create manageable WordPress websites
Using Composer to create manageable WordPress websites
 
Meet The Family
Meet The FamilyMeet The Family
Meet The Family
 
Useful Freeware
Useful FreewareUseful Freeware
Useful Freeware
 
Introduction to Wordpress
Introduction to WordpressIntroduction to Wordpress
Introduction to Wordpress
 
Web Browser ! Batra Computer Centre
Web Browser ! Batra Computer CentreWeb Browser ! Batra Computer Centre
Web Browser ! Batra Computer Centre
 

Andere mochten auch

Jetpack and Jetpack Reboot
Jetpack and Jetpack RebootJetpack and Jetpack Reboot
Jetpack and Jetpack Rebootlittlebtc
 
090807social
090807social090807social
090807sociallittlebtc
 
FURP12-Snappy
FURP12-SnappyFURP12-Snappy
FURP12-Snappylittlebtc
 
Mozilla Firefox Extension Development, Course 1: Basic
Mozilla Firefox Extension Development, Course 1: BasicMozilla Firefox Extension Development, Course 1: Basic
Mozilla Firefox Extension Development, Course 1: Basiclittlebtc
 
MoZH propose
MoZH proposeMoZH propose
MoZH proposelittlebtc
 
寫給大家的 Git 教學
寫給大家的 Git 教學寫給大家的 Git 教學
寫給大家的 Git 教學littlebtc
 

Andere mochten auch (7)

Jetpack and Jetpack Reboot
Jetpack and Jetpack RebootJetpack and Jetpack Reboot
Jetpack and Jetpack Reboot
 
Ext 0523
Ext 0523Ext 0523
Ext 0523
 
090807social
090807social090807social
090807social
 
FURP12-Snappy
FURP12-SnappyFURP12-Snappy
FURP12-Snappy
 
Mozilla Firefox Extension Development, Course 1: Basic
Mozilla Firefox Extension Development, Course 1: BasicMozilla Firefox Extension Development, Course 1: Basic
Mozilla Firefox Extension Development, Course 1: Basic
 
MoZH propose
MoZH proposeMoZH propose
MoZH propose
 
寫給大家的 Git 教學
寫給大家的 Git 教學寫給大家的 Git 教學
寫給大家的 Git 教學
 

Ähnlich wie MozTW YZU CSE Lecture

Developing FirefoxOS
Developing FirefoxOSDeveloping FirefoxOS
Developing FirefoxOSFred Lin
 
MEIC - Fennec presentation 2008-03-06
MEIC - Fennec presentation 2008-03-06MEIC - Fennec presentation 2008-03-06
MEIC - Fennec presentation 2008-03-06Madhava Enros
 
Performance Improvements in Browsers
Performance Improvements in BrowsersPerformance Improvements in Browsers
Performance Improvements in Browsersjeresig
 
Ajax Tutorial
Ajax TutorialAjax Tutorial
Ajax Tutorialoscon2007
 
Apache Flex and the imperfect Web
Apache Flex and the imperfect WebApache Flex and the imperfect Web
Apache Flex and the imperfect Webmasuland
 
JavaScript debugging diagnostic web tools and firefox
JavaScript debugging diagnostic web tools and firefoxJavaScript debugging diagnostic web tools and firefox
JavaScript debugging diagnostic web tools and firefoxGennady Feldman
 
Chris Wilson @ FOWA Feb 07
Chris Wilson @ FOWA Feb 07Chris Wilson @ FOWA Feb 07
Chris Wilson @ FOWA Feb 07carsonsystems
 
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)Fabien Potencier
 
Mozilla Project and Open Web
Mozilla Project and Open WebMozilla Project and Open Web
Mozilla Project and Open WebChanny Yun
 
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There TodayHTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There Todaydavyjones
 
How to start developing apps for Firefox OS
How to start developing apps for Firefox OSHow to start developing apps for Firefox OS
How to start developing apps for Firefox OSbenko
 
PhoneGap at Facebook Mobile Hack
PhoneGap at Facebook Mobile HackPhoneGap at Facebook Mobile Hack
PhoneGap at Facebook Mobile HackPhoneGap
 
Fennec case study - Design for Mobile 2009
Fennec case study - Design for Mobile 2009Fennec case study - Design for Mobile 2009
Fennec case study - Design for Mobile 2009Madhava Enros
 
Building A Platform From Open Source At Yahoo
Building A Platform From Open Source At YahooBuilding A Platform From Open Source At Yahoo
Building A Platform From Open Source At Yahoonarkoza
 
Getting started with PhoneGap
Getting started with PhoneGapGetting started with PhoneGap
Getting started with PhoneGapMihai Corlan
 
Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Asher Martin
 

Ähnlich wie MozTW YZU CSE Lecture (20)

Developing FirefoxOS
Developing FirefoxOSDeveloping FirefoxOS
Developing FirefoxOS
 
PhoneGap/Cordova
PhoneGap/CordovaPhoneGap/Cordova
PhoneGap/Cordova
 
MEIC - Fennec presentation 2008-03-06
MEIC - Fennec presentation 2008-03-06MEIC - Fennec presentation 2008-03-06
MEIC - Fennec presentation 2008-03-06
 
Performance Improvements in Browsers
Performance Improvements in BrowsersPerformance Improvements in Browsers
Performance Improvements in Browsers
 
Titanium Desktop Intro
Titanium Desktop IntroTitanium Desktop Intro
Titanium Desktop Intro
 
Ajax Tutorial
Ajax TutorialAjax Tutorial
Ajax Tutorial
 
Apache Flex and the imperfect Web
Apache Flex and the imperfect WebApache Flex and the imperfect Web
Apache Flex and the imperfect Web
 
JavaScript debugging diagnostic web tools and firefox
JavaScript debugging diagnostic web tools and firefoxJavaScript debugging diagnostic web tools and firefox
JavaScript debugging diagnostic web tools and firefox
 
Chris Wilson @ FOWA Feb 07
Chris Wilson @ FOWA Feb 07Chris Wilson @ FOWA Feb 07
Chris Wilson @ FOWA Feb 07
 
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
 
Mozilla Project and Open Web
Mozilla Project and Open WebMozilla Project and Open Web
Mozilla Project and Open Web
 
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There TodayHTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
 
How to start developing apps for Firefox OS
How to start developing apps for Firefox OSHow to start developing apps for Firefox OS
How to start developing apps for Firefox OS
 
PhoneGap at Facebook Mobile Hack
PhoneGap at Facebook Mobile HackPhoneGap at Facebook Mobile Hack
PhoneGap at Facebook Mobile Hack
 
Fennec case study - Design for Mobile 2009
Fennec case study - Design for Mobile 2009Fennec case study - Design for Mobile 2009
Fennec case study - Design for Mobile 2009
 
Firefox OS
Firefox OSFirefox OS
Firefox OS
 
Flash media technology
Flash media technologyFlash media technology
Flash media technology
 
Building A Platform From Open Source At Yahoo
Building A Platform From Open Source At YahooBuilding A Platform From Open Source At Yahoo
Building A Platform From Open Source At Yahoo
 
Getting started with PhoneGap
Getting started with PhoneGapGetting started with PhoneGap
Getting started with PhoneGap
 
Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3
 

MozTW YZU CSE Lecture