SlideShare a Scribd company logo
1 of 24
Web Browser Extension
  Development

Lucian Novac and Rusu Alexandru
Faculty of Computer Science, Al. I. Cuza University of Iaşi
Browsers Extensions
Browser Extension?
• You write them using :HTML, JavaScript, and
  CSS.
Google Chrome Extensions
•   A manifest file
•   HTML files (unless the extension is a theme)
•   JavaScript files
•   Other files
Google Chrome Extensions
                    .css
                    .png
                                .html
   manifest.json                .js


                     .crx

                   Components
Google Chrome Extensions
• manifest.json is a manifest file and is the most
  important.
Google Chrome Extensions
Example of manifest file provided by Google Chrome:

{
 "name": "My Extension",
"version": "2.1",
"description": "Gets information from Google.",
"icons": { "128": "icon_128.png" },
"background_page": "bg.html",
“permissions":
   ["http://*.google.com/", "https://*.google.com/"], "browser_action": {
   "default_title": "", "default_icon": "icon_19.png", "default_popup":
   "popup.html" }
 }
Opera Extensions
• based on the W3C Widgets specification .
• add the browser UI and functionality
• edit web pages
Opera Extensions




     The two basic parts of an Opera extension and
     how they communicate.
                     From Opera
Opera Extensions
•   /config.xml
•   /index.html
•   /background.js
•   /popup.html
•   /icons/example.png
•   /locales/no/index.html
•   /locales/no/background.js
•   /locales/no/popup.html
•   /options.html
Opera Extensions


• config.xml is mandatory and provides valuable
  meta data for the extension
Opera Extensions
• config.xml file(provided by Opera):
<?xml version="1.0" encoding="utf-8"?>
<widget xmlns="http://www.w3.org/ns/widgets"
  id="http://www.example.org/example">
<name>My test extension</name>
<description>API experiments and testing.</description>
<author href="http://foo-bar.example.org/" email="foo-
  bar@example.org">Foo Bar Corp</author>
<icon src="icons/example.png"/>
</widget>
Opera Extensions
• index.html file(provided by Opera):
<!doctype html>
<html>
<head>
<script>
window.addEventListener("load", function(){
var theButton;
var UIItemProperties = { disabled: false, title: "101 - createItem w popup big", icon:
  "icon.png", popup: { href: "popup.html", width: 250, height: 500 } } theButton =
  opera.contexts.toolbar.createItem( UIItemProperties );
  opera.contexts.toolbar.addItem( theButton ); }, false);
</script>
</head>
<body>
</body>
</html>
Mozilla Extensions
• Add new functionality to browser
Mozilla Extensions




                Firebug




 AdBlock Plus             Delicious
Mozilla Extensions
                      .xul
                       .js

     Install.rdf
  Chrome.manifes                 .css
          t                     .png




                      XPI
                   Components
Mozilla Extensions




             Xul Components
Mozilla Extensions
• XUL (XML User Interface Language) -alternative
  text, graphics and layout.
Safari Extensions
• Safari application
• Web content
Safari Extensions
• JavaScript API
• This API is documented in Safari Extensions
  Reference.
Safari Extensions




          The extension architecture
                 From Safari
Safari Extensions


• Extension Builder for make extensions
• Safari 5.0
Safari Extensions
• The main ingredients of an extension are:
  oGlobal HTML page
  oContent (HTML, CSS, JavaScript, media)
  oMenu Items (labels, images)
  oInjected scripts
  oInjected style sheets
  oIcon image
Bibliography
•   http://dev.opera.com
•   http://code.google.com
•   https://developer.mozilla.org
•   http://developer.apple.com

More Related Content

What's hot

WordPress as a CMS - Case Study of an Organizational Intranet
WordPress as a CMS - Case Study of an Organizational IntranetWordPress as a CMS - Case Study of an Organizational Intranet
WordPress as a CMS - Case Study of an Organizational Intranet
Tech Liminal
 
Building Chrome Extensions
Building Chrome ExtensionsBuilding Chrome Extensions
Building Chrome Extensions
Ron Reiter
 

What's hot (13)

Html 5
Html 5Html 5
Html 5
 
Eclipse orion
Eclipse orionEclipse orion
Eclipse orion
 
Ppt for Online music store
Ppt for Online music storePpt for Online music store
Ppt for Online music store
 
Custom fields in joomla
Custom fields in joomlaCustom fields in joomla
Custom fields in joomla
 
Unleashing Creative Freedom with MODX (2015-09-03 at GroningenPHP)
Unleashing Creative Freedom with MODX (2015-09-03 at GroningenPHP)Unleashing Creative Freedom with MODX (2015-09-03 at GroningenPHP)
Unleashing Creative Freedom with MODX (2015-09-03 at GroningenPHP)
 
Introduction to Google Chrome Extensions Development
Introduction to Google Chrome Extensions DevelopmentIntroduction to Google Chrome Extensions Development
Introduction to Google Chrome Extensions Development
 
Phpyahoo
PhpyahooPhpyahoo
Phpyahoo
 
WordPress as a CMS - Case Study of an Organizational Intranet
WordPress as a CMS - Case Study of an Organizational IntranetWordPress as a CMS - Case Study of an Organizational Intranet
WordPress as a CMS - Case Study of an Organizational Intranet
 
Building Chrome Extensions
Building Chrome ExtensionsBuilding Chrome Extensions
Building Chrome Extensions
 
Internet Explorer 8
Internet Explorer 8Internet Explorer 8
Internet Explorer 8
 
itPage LDC 09 Presentation
itPage LDC 09 PresentationitPage LDC 09 Presentation
itPage LDC 09 Presentation
 
How To Implement a CMS
How To Implement a CMSHow To Implement a CMS
How To Implement a CMS
 
Drupal Camp LA 2011: Typography modules for Drupal
Drupal Camp LA 2011: Typography modules for DrupalDrupal Camp LA 2011: Typography modules for Drupal
Drupal Camp LA 2011: Typography modules for Drupal
 

Similar to Web browser extension development

Chrome Apps & Extensions
Chrome Apps & ExtensionsChrome Apps & Extensions
Chrome Apps & Extensions
Varun Raj
 
Google chrome extension
Google chrome extensionGoogle chrome extension
Google chrome extension
Johnny Kingdom
 
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...
Lucidworks
 
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
benko
 

Similar to Web browser extension development (20)

Chrome Apps & Extensions
Chrome Apps & ExtensionsChrome Apps & Extensions
Chrome Apps & Extensions
 
Develop Chrome Extension
Develop Chrome ExtensionDevelop Chrome Extension
Develop Chrome Extension
 
Google Chrome Extensions - DevFest09
Google Chrome Extensions - DevFest09Google Chrome Extensions - DevFest09
Google Chrome Extensions - DevFest09
 
Google chrome extension
Google chrome extensionGoogle chrome extension
Google chrome extension
 
From WordPress With Love
From WordPress With LoveFrom WordPress With Love
From WordPress With Love
 
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...
 
Techorama 2019 - ASP.NET Core One Hour Makeover
Techorama 2019 - ASP.NET Core One Hour MakeoverTechorama 2019 - ASP.NET Core One Hour Makeover
Techorama 2019 - ASP.NET Core One Hour Makeover
 
[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics[DanNotes] XPages - Beyound the Basics
[DanNotes] XPages - Beyound the Basics
 
Getting started with add ons
Getting started with add onsGetting started with add ons
Getting started with add ons
 
2.28.17 Introducing DSpace 7 Webinar Slides
2.28.17 Introducing DSpace 7 Webinar Slides2.28.17 Introducing DSpace 7 Webinar Slides
2.28.17 Introducing DSpace 7 Webinar Slides
 
Jinja Template Engine
Jinja Template EngineJinja Template Engine
Jinja Template Engine
 
Extension Library - Viagra for XPages
Extension Library - Viagra for XPagesExtension Library - Viagra for XPages
Extension Library - Viagra for XPages
 
XPages -Beyond the Basics
XPages -Beyond the BasicsXPages -Beyond the Basics
XPages -Beyond the Basics
 
Cordova: APIs and instruments
Cordova: APIs and instrumentsCordova: APIs and instruments
Cordova: APIs and instruments
 
Understanding SharePoint Framework Extensions
Understanding SharePoint Framework ExtensionsUnderstanding SharePoint Framework Extensions
Understanding SharePoint Framework Extensions
 
Discovering Chrome Extensions
Discovering Chrome ExtensionsDiscovering Chrome Extensions
Discovering Chrome Extensions
 
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
 
SharePoint development 2017 wrap-up
SharePoint development   2017 wrap-upSharePoint development   2017 wrap-up
SharePoint development 2017 wrap-up
 
Developing chrome extensions 2021 04-30
Developing chrome extensions 2021 04-30Developing chrome extensions 2021 04-30
Developing chrome extensions 2021 04-30
 
Web browser extensions development
Web browser extensions developmentWeb browser extensions development
Web browser extensions development
 

Recently uploaded

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
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
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

Web browser extension development

  • 1. Web Browser Extension Development Lucian Novac and Rusu Alexandru Faculty of Computer Science, Al. I. Cuza University of Iaşi
  • 3. Browser Extension? • You write them using :HTML, JavaScript, and CSS.
  • 4. Google Chrome Extensions • A manifest file • HTML files (unless the extension is a theme) • JavaScript files • Other files
  • 5. Google Chrome Extensions .css .png .html manifest.json .js .crx Components
  • 6. Google Chrome Extensions • manifest.json is a manifest file and is the most important.
  • 7. Google Chrome Extensions Example of manifest file provided by Google Chrome: { "name": "My Extension", "version": "2.1", "description": "Gets information from Google.", "icons": { "128": "icon_128.png" }, "background_page": "bg.html", “permissions": ["http://*.google.com/", "https://*.google.com/"], "browser_action": { "default_title": "", "default_icon": "icon_19.png", "default_popup": "popup.html" } }
  • 8. Opera Extensions • based on the W3C Widgets specification . • add the browser UI and functionality • edit web pages
  • 9. Opera Extensions The two basic parts of an Opera extension and how they communicate. From Opera
  • 10. Opera Extensions • /config.xml • /index.html • /background.js • /popup.html • /icons/example.png • /locales/no/index.html • /locales/no/background.js • /locales/no/popup.html • /options.html
  • 11. Opera Extensions • config.xml is mandatory and provides valuable meta data for the extension
  • 12. Opera Extensions • config.xml file(provided by Opera): <?xml version="1.0" encoding="utf-8"?> <widget xmlns="http://www.w3.org/ns/widgets" id="http://www.example.org/example"> <name>My test extension</name> <description>API experiments and testing.</description> <author href="http://foo-bar.example.org/" email="foo- bar@example.org">Foo Bar Corp</author> <icon src="icons/example.png"/> </widget>
  • 13. Opera Extensions • index.html file(provided by Opera): <!doctype html> <html> <head> <script> window.addEventListener("load", function(){ var theButton; var UIItemProperties = { disabled: false, title: "101 - createItem w popup big", icon: "icon.png", popup: { href: "popup.html", width: 250, height: 500 } } theButton = opera.contexts.toolbar.createItem( UIItemProperties ); opera.contexts.toolbar.addItem( theButton ); }, false); </script> </head> <body> </body> </html>
  • 14. Mozilla Extensions • Add new functionality to browser
  • 15. Mozilla Extensions Firebug AdBlock Plus Delicious
  • 16. Mozilla Extensions .xul .js Install.rdf Chrome.manifes .css t .png XPI Components
  • 17. Mozilla Extensions Xul Components
  • 18. Mozilla Extensions • XUL (XML User Interface Language) -alternative text, graphics and layout.
  • 19. Safari Extensions • Safari application • Web content
  • 20. Safari Extensions • JavaScript API • This API is documented in Safari Extensions Reference.
  • 21. Safari Extensions The extension architecture From Safari
  • 22. Safari Extensions • Extension Builder for make extensions • Safari 5.0
  • 23. Safari Extensions • The main ingredients of an extension are: oGlobal HTML page oContent (HTML, CSS, JavaScript, media) oMenu Items (labels, images) oInjected scripts oInjected style sheets oIcon image
  • 24. Bibliography • http://dev.opera.com • http://code.google.com • https://developer.mozilla.org • http://developer.apple.com