SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
Browser Extensions 
Introduction
What are they ? 
An extension of the Web browser 
The terminology, however, maybe different for different browsers; you have Chrome Extensions and Firefox Add-ons and … well others … 
*And also, Chrome extensions can be installed and run only on Google Chrome, whereas Firefox Add-ons can be installed and run only on Mozilla Firefox and so on.
What are they ? 
•Applications/Programs that are run by the browser, inside the browser. 
So your application executes when the user starts the browser 
•They build customized features on top of the browser that can make a user’s life easy, enable him to do more stuff
Why have extensions ? 
•A browser in its base form provides only the absolutely necessary features/functionality 
•Extensions can provide more features on top of the basic browser functionality. These features can make a user’s life easier, enable him to do more stuff etc. 
•This enables users to install only features they use, and not unnecessarily load the browser with useless (for the user) features
Best way to understand … Examples 
An Extension that keeps showing new Facebook notifications without needing to open Facebook in a tab
Best way to understand … Examples 
An Extension that lets you save documents to Google Drive on the fly
They are developed in … 
Extensions for most browsers are written in JavaScript. At least for Chrome and Firefox they are. 
Advanced Extensions usually use JSON and AJAX (a lot !) to do complex stuff.
How do they work ? … Collect Information 
When your extension (JavaScript code) runs inside the browser, it can access various information, like: 
1.Page Url 
2.Html of the entire page 
3.If user has selected something, and what has he selected 
4.If the user clicked 
etcetcetc..
How do they work ? … Do Stuff 
Using the above information, they can do a lot of cool stuff, like: 
1.Remove all the ads on the page 
2.Suggest similar pages on the internet 
3.Organize the tabs in a better way rather than in a row 
4.Show a user how much time he spends on which page 
etcetcetc…
But How to Collect Information and Do Stuff 
•Have you ever written JavaScript ? I hope you have … 
•Have you ever collected information in JavaScript, say 
read the Url: << document.URL>> 
Orread the page HTML : << document.documentElement.innerHTML>> 
•And have you ever done stuff in JavaScript, say 
Alert the user: << alert(“Hi, you are at :” + document.URL);>> 
OrChange the page contents: << document.documentElement.innerHtml= “Hey, we removed all content from your page :P”;>> 
Then you are all set to develop Extensions !!
But How to Collect Information and Do Stuff 
(At a broader level), you just need to keep writing that JavaScript and give it to the browser and the browser will run it on the webpage for you ! 
Well, that is, if the user has installed your Extension :D
It’s a different thing, however, 
that with an extension, you can collect more information than just the page Urland Html Content and do much more stuff :D 
You can have a user sign into his Google Account or Facebook Account using their OauthIds. This will give you access to the user’s name, email etcetc…
Just a little more complex … really ! 
Usually, browsers won’t just ask you for a list of javascriptfiles and run them on the user’s webpage 
They will have various parts, ex: 
1.A set of scripts that will run in the user’s webpage. The browser runs a separate copy of these for each tab. They can read anything in that tab, modify the page etc… 
2.A set of scripts that will run in the background. They are not specific to any one webpage/tab in the browser. But they can talk to the first set of scripts 
This organization of files/code is specific to the browser for which you are making the extension
Useful Resources 
•http://talks.codegram.com/creating-basic-chrome- extensions#/description 
•Google Chrome Extension Tutorial: https://developer.chrome.com/extensions/overview 
•Chrome Storage API (lets your extension save data on user’s computer that can be used later) https://developer.chrome.com/apps/storage#property-local

Weitere ähnliche Inhalte

Was ist angesagt?

Automated-Accessibility-Testing
Automated-Accessibility-TestingAutomated-Accessibility-Testing
Automated-Accessibility-TestingManoj Kumar Kumar
 
S.O.L.I.D. Principles for Software Architects
S.O.L.I.D. Principles for Software ArchitectsS.O.L.I.D. Principles for Software Architects
S.O.L.I.D. Principles for Software ArchitectsRicardo Wilkins
 
In the DOM, no one will hear you scream
In the DOM, no one will hear you screamIn the DOM, no one will hear you scream
In the DOM, no one will hear you screamMario Heiderich
 
Content Management System(CMS) & Basic WordPress
Content Management System(CMS) & Basic WordPressContent Management System(CMS) & Basic WordPress
Content Management System(CMS) & Basic WordPressShahadat Hossain Manik
 
Alice Phieu - WordPress For Beginners
Alice Phieu - WordPress For BeginnersAlice Phieu - WordPress For Beginners
Alice Phieu - WordPress For BeginnersAlice Phieu
 
Microservice API Gateways with NGINX
Microservice API Gateways with NGINXMicroservice API Gateways with NGINX
Microservice API Gateways with NGINXGeoffrey Filippi
 
Web Application Development Tools for Creating Perfect User Experience
Web Application Development Tools for Creating Perfect User ExperienceWeb Application Development Tools for Creating Perfect User Experience
Web Application Development Tools for Creating Perfect User ExperienceChromeInfo Technologies
 
ZgPHP 97 - Microservice architecture in Laravel
ZgPHP 97 - Microservice architecture in LaravelZgPHP 97 - Microservice architecture in Laravel
ZgPHP 97 - Microservice architecture in LaravelFrano Šašvari
 
Practical tools for Web Accessibility testing
Practical tools for Web Accessibility testingPractical tools for Web Accessibility testing
Practical tools for Web Accessibility testingToufic Sbeiti
 
Mean full stack development
Mean full stack developmentMean full stack development
Mean full stack developmentScott Lee
 
Dependency injection for beginners
Dependency injection for beginnersDependency injection for beginners
Dependency injection for beginnersBhushan Mulmule
 
Selenium with Cucumber
Selenium  with Cucumber Selenium  with Cucumber
Selenium with Cucumber Knoldus Inc.
 

Was ist angesagt? (20)

Selenium WebDriver training
Selenium WebDriver trainingSelenium WebDriver training
Selenium WebDriver training
 
Automated-Accessibility-Testing
Automated-Accessibility-TestingAutomated-Accessibility-Testing
Automated-Accessibility-Testing
 
S.O.L.I.D. Principles for Software Architects
S.O.L.I.D. Principles for Software ArchitectsS.O.L.I.D. Principles for Software Architects
S.O.L.I.D. Principles for Software Architects
 
In the DOM, no one will hear you scream
In the DOM, no one will hear you screamIn the DOM, no one will hear you scream
In the DOM, no one will hear you scream
 
Content Management System(CMS) & Basic WordPress
Content Management System(CMS) & Basic WordPressContent Management System(CMS) & Basic WordPress
Content Management System(CMS) & Basic WordPress
 
Alice Phieu - WordPress For Beginners
Alice Phieu - WordPress For BeginnersAlice Phieu - WordPress For Beginners
Alice Phieu - WordPress For Beginners
 
Microservice API Gateways with NGINX
Microservice API Gateways with NGINXMicroservice API Gateways with NGINX
Microservice API Gateways with NGINX
 
Intro to Wordpress
Intro to WordpressIntro to Wordpress
Intro to Wordpress
 
Java access modifiers
Java access modifiersJava access modifiers
Java access modifiers
 
Codeigniter
CodeigniterCodeigniter
Codeigniter
 
Web Application Development Tools for Creating Perfect User Experience
Web Application Development Tools for Creating Perfect User ExperienceWeb Application Development Tools for Creating Perfect User Experience
Web Application Development Tools for Creating Perfect User Experience
 
Cookies
CookiesCookies
Cookies
 
ZgPHP 97 - Microservice architecture in Laravel
ZgPHP 97 - Microservice architecture in LaravelZgPHP 97 - Microservice architecture in Laravel
ZgPHP 97 - Microservice architecture in Laravel
 
Practical tools for Web Accessibility testing
Practical tools for Web Accessibility testingPractical tools for Web Accessibility testing
Practical tools for Web Accessibility testing
 
Flutter Intro
Flutter IntroFlutter Intro
Flutter Intro
 
Mean full stack development
Mean full stack developmentMean full stack development
Mean full stack development
 
WORDPRESS
WORDPRESSWORDPRESS
WORDPRESS
 
Dependency injection for beginners
Dependency injection for beginnersDependency injection for beginners
Dependency injection for beginners
 
Selenium with Cucumber
Selenium  with Cucumber Selenium  with Cucumber
Selenium with Cucumber
 
The WebKit project
The WebKit projectThe WebKit project
The WebKit project
 

Andere mochten auch

Introduction To Browser Extension Development
Introduction To Browser Extension DevelopmentIntroduction To Browser Extension Development
Introduction To Browser Extension DevelopmentSteven James
 
Lec 4 introduction to the common web browsers
Lec 4 introduction to the common web browsersLec 4 introduction to the common web browsers
Lec 4 introduction to the common web browsersKewan Suliman
 
Introduction to Google Chrome Extensions Development
Introduction to Google Chrome Extensions DevelopmentIntroduction to Google Chrome Extensions Development
Introduction to Google Chrome Extensions DevelopmentJomar Tigcal
 
20100915 學習撰寫 Google Chrome Extension
20100915 學習撰寫 Google Chrome Extension20100915 學習撰寫 Google Chrome Extension
20100915 學習撰寫 Google Chrome ExtensionJustin Lee
 
Making Chrome Extension with AngularJS
Making Chrome Extension with AngularJSMaking Chrome Extension with AngularJS
Making Chrome Extension with AngularJSBen Lau
 
A Complete Guide To Chrome Extension Development
A Complete Guide  To Chrome Extension  DevelopmentA Complete Guide  To Chrome Extension  Development
A Complete Guide To Chrome Extension DevelopmentSteven James
 
Natural language processing (NLP) introduction
Natural language processing (NLP) introductionNatural language processing (NLP) introduction
Natural language processing (NLP) introductionRobert Lujo
 
Practical Natural Language Processing
Practical Natural Language ProcessingPractical Natural Language Processing
Practical Natural Language ProcessingJaganadh Gopinadhan
 
Natural language processing
Natural language processingNatural language processing
Natural language processingYogendra Tamang
 
Introduction to Natural Language Processing
Introduction to Natural Language ProcessingIntroduction to Natural Language Processing
Introduction to Natural Language ProcessingPranav Gupta
 
Chrome Extension Develop Starts
Chrome Extension Develop StartsChrome Extension Develop Starts
Chrome Extension Develop Startstaobao.com
 

Andere mochten auch (14)

Introduction To Browser Extension Development
Introduction To Browser Extension DevelopmentIntroduction To Browser Extension Development
Introduction To Browser Extension Development
 
Browser extension
Browser extensionBrowser extension
Browser extension
 
Lec 4 introduction to the common web browsers
Lec 4 introduction to the common web browsersLec 4 introduction to the common web browsers
Lec 4 introduction to the common web browsers
 
Introduction to Google Chrome Extensions Development
Introduction to Google Chrome Extensions DevelopmentIntroduction to Google Chrome Extensions Development
Introduction to Google Chrome Extensions Development
 
20100915 學習撰寫 Google Chrome Extension
20100915 學習撰寫 Google Chrome Extension20100915 學習撰寫 Google Chrome Extension
20100915 學習撰寫 Google Chrome Extension
 
Chrome extension development
Chrome extension developmentChrome extension development
Chrome extension development
 
Making Chrome Extension with AngularJS
Making Chrome Extension with AngularJSMaking Chrome Extension with AngularJS
Making Chrome Extension with AngularJS
 
A Complete Guide To Chrome Extension Development
A Complete Guide  To Chrome Extension  DevelopmentA Complete Guide  To Chrome Extension  Development
A Complete Guide To Chrome Extension Development
 
Natural language processing (NLP) introduction
Natural language processing (NLP) introductionNatural language processing (NLP) introduction
Natural language processing (NLP) introduction
 
Practical Natural Language Processing
Practical Natural Language ProcessingPractical Natural Language Processing
Practical Natural Language Processing
 
Natural language processing
Natural language processingNatural language processing
Natural language processing
 
Introduction to Natural Language Processing
Introduction to Natural Language ProcessingIntroduction to Natural Language Processing
Introduction to Natural Language Processing
 
Natural Language Processing
Natural Language ProcessingNatural Language Processing
Natural Language Processing
 
Chrome Extension Develop Starts
Chrome Extension Develop StartsChrome Extension Develop Starts
Chrome Extension Develop Starts
 

Ähnlich wie Introduction to Web Browser Extension/Add-ons

Web browser extensions development
Web browser extensions developmentWeb browser extensions development
Web browser extensions developmentdragoslargu
 
Introduction to web page
Introduction to web pageIntroduction to web page
Introduction to web pageMahmoud Shaqria
 
A Quick View On Web Design By Speakerhead.com
A Quick View On Web Design By Speakerhead.comA Quick View On Web Design By Speakerhead.com
A Quick View On Web Design By Speakerhead.comspeakerhead-com
 
How and Why to extend Firefox
How and Why to extend FirefoxHow and Why to extend Firefox
How and Why to extend FirefoxGraham King
 
Presentation _ Unit no.1_ Lesson No. 1-2_ Grade 8.pptx
Presentation _ Unit no.1_ Lesson No. 1-2_ Grade 8.pptxPresentation _ Unit no.1_ Lesson No. 1-2_ Grade 8.pptx
Presentation _ Unit no.1_ Lesson No. 1-2_ Grade 8.pptxarvieluces1
 
Google chrome extension
Google chrome extensionGoogle chrome extension
Google chrome extensionJohnny Kingdom
 
Module 4 Accessing the Internet
Module 4 Accessing the InternetModule 4 Accessing the Internet
Module 4 Accessing the Internetdaryu1
 
Chrome Extensions for Web Hackers
Chrome Extensions for Web HackersChrome Extensions for Web Hackers
Chrome Extensions for Web HackersMark Wubben
 
FirefoxOs App Development by Adam
FirefoxOs App Development by Adam FirefoxOs App Development by Adam
FirefoxOs App Development by Adam Mohammed Adam
 
Browser Extensions for Web Hackers
Browser Extensions for Web HackersBrowser Extensions for Web Hackers
Browser Extensions for Web HackersMark Wubben
 
Web browser and serach engine
Web browser and serach engineWeb browser and serach engine
Web browser and serach enginesharjeel malik
 
How Browsers Work -By Tali Garsiel and Paul Irish
How Browsers Work -By Tali Garsiel and Paul IrishHow Browsers Work -By Tali Garsiel and Paul Irish
How Browsers Work -By Tali Garsiel and Paul IrishNagamurali Reddy
 
More Browser Basics, Tips & Tricks 3 Draft 8
More Browser Basics, Tips & Tricks 3 Draft 8More Browser Basics, Tips & Tricks 3 Draft 8
More Browser Basics, Tips & Tricks 3 Draft 8msz
 
Building & distributing chrome extensions and web apps
Building & distributing chrome extensions and web appsBuilding & distributing chrome extensions and web apps
Building & distributing chrome extensions and web appsRoel Palmaers
 
Intro to advanced web development
Intro to advanced web developmentIntro to advanced web development
Intro to advanced web developmentStevie T
 
Nt1310 Final Exam Questions And Answers
Nt1310 Final Exam Questions And AnswersNt1310 Final Exam Questions And Answers
Nt1310 Final Exam Questions And AnswersLisa Williams
 

Ähnlich wie Introduction to Web Browser Extension/Add-ons (20)

Web browser extensions development
Web browser extensions developmentWeb browser extensions development
Web browser extensions development
 
Webdesign
WebdesignWebdesign
Webdesign
 
Introduction to web page
Introduction to web pageIntroduction to web page
Introduction to web page
 
A Quick View On Web Design By Speakerhead.com
A Quick View On Web Design By Speakerhead.comA Quick View On Web Design By Speakerhead.com
A Quick View On Web Design By Speakerhead.com
 
How and Why to extend Firefox
How and Why to extend FirefoxHow and Why to extend Firefox
How and Why to extend Firefox
 
Presentation _ Unit no.1_ Lesson No. 1-2_ Grade 8.pptx
Presentation _ Unit no.1_ Lesson No. 1-2_ Grade 8.pptxPresentation _ Unit no.1_ Lesson No. 1-2_ Grade 8.pptx
Presentation _ Unit no.1_ Lesson No. 1-2_ Grade 8.pptx
 
Browsers
BrowsersBrowsers
Browsers
 
Google chrome extension
Google chrome extensionGoogle chrome extension
Google chrome extension
 
Module 4 Accessing the Internet
Module 4 Accessing the InternetModule 4 Accessing the Internet
Module 4 Accessing the Internet
 
Chrome Extensions for Web Hackers
Chrome Extensions for Web HackersChrome Extensions for Web Hackers
Chrome Extensions for Web Hackers
 
FirefoxOs App Development by Adam
FirefoxOs App Development by Adam FirefoxOs App Development by Adam
FirefoxOs App Development by Adam
 
Browser Extensions for Web Hackers
Browser Extensions for Web HackersBrowser Extensions for Web Hackers
Browser Extensions for Web Hackers
 
Module 3
Module 3Module 3
Module 3
 
Web browser and serach engine
Web browser and serach engineWeb browser and serach engine
Web browser and serach engine
 
How Browsers Work -By Tali Garsiel and Paul Irish
How Browsers Work -By Tali Garsiel and Paul IrishHow Browsers Work -By Tali Garsiel and Paul Irish
How Browsers Work -By Tali Garsiel and Paul Irish
 
More Browser Basics, Tips & Tricks 3 Draft 8
More Browser Basics, Tips & Tricks 3 Draft 8More Browser Basics, Tips & Tricks 3 Draft 8
More Browser Basics, Tips & Tricks 3 Draft 8
 
Building & distributing chrome extensions and web apps
Building & distributing chrome extensions and web appsBuilding & distributing chrome extensions and web apps
Building & distributing chrome extensions and web apps
 
Raju html
Raju htmlRaju html
Raju html
 
Intro to advanced web development
Intro to advanced web developmentIntro to advanced web development
Intro to advanced web development
 
Nt1310 Final Exam Questions And Answers
Nt1310 Final Exam Questions And AnswersNt1310 Final Exam Questions And Answers
Nt1310 Final Exam Questions And Answers
 

Kürzlich hochgeladen

Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineeringssuserb3a23b
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 

Kürzlich hochgeladen (20)

Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineering
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 

Introduction to Web Browser Extension/Add-ons

  • 2. What are they ? An extension of the Web browser The terminology, however, maybe different for different browsers; you have Chrome Extensions and Firefox Add-ons and … well others … *And also, Chrome extensions can be installed and run only on Google Chrome, whereas Firefox Add-ons can be installed and run only on Mozilla Firefox and so on.
  • 3. What are they ? •Applications/Programs that are run by the browser, inside the browser. So your application executes when the user starts the browser •They build customized features on top of the browser that can make a user’s life easy, enable him to do more stuff
  • 4. Why have extensions ? •A browser in its base form provides only the absolutely necessary features/functionality •Extensions can provide more features on top of the basic browser functionality. These features can make a user’s life easier, enable him to do more stuff etc. •This enables users to install only features they use, and not unnecessarily load the browser with useless (for the user) features
  • 5. Best way to understand … Examples An Extension that keeps showing new Facebook notifications without needing to open Facebook in a tab
  • 6. Best way to understand … Examples An Extension that lets you save documents to Google Drive on the fly
  • 7. They are developed in … Extensions for most browsers are written in JavaScript. At least for Chrome and Firefox they are. Advanced Extensions usually use JSON and AJAX (a lot !) to do complex stuff.
  • 8. How do they work ? … Collect Information When your extension (JavaScript code) runs inside the browser, it can access various information, like: 1.Page Url 2.Html of the entire page 3.If user has selected something, and what has he selected 4.If the user clicked etcetcetc..
  • 9. How do they work ? … Do Stuff Using the above information, they can do a lot of cool stuff, like: 1.Remove all the ads on the page 2.Suggest similar pages on the internet 3.Organize the tabs in a better way rather than in a row 4.Show a user how much time he spends on which page etcetcetc…
  • 10. But How to Collect Information and Do Stuff •Have you ever written JavaScript ? I hope you have … •Have you ever collected information in JavaScript, say read the Url: << document.URL>> Orread the page HTML : << document.documentElement.innerHTML>> •And have you ever done stuff in JavaScript, say Alert the user: << alert(“Hi, you are at :” + document.URL);>> OrChange the page contents: << document.documentElement.innerHtml= “Hey, we removed all content from your page :P”;>> Then you are all set to develop Extensions !!
  • 11. But How to Collect Information and Do Stuff (At a broader level), you just need to keep writing that JavaScript and give it to the browser and the browser will run it on the webpage for you ! Well, that is, if the user has installed your Extension :D
  • 12. It’s a different thing, however, that with an extension, you can collect more information than just the page Urland Html Content and do much more stuff :D You can have a user sign into his Google Account or Facebook Account using their OauthIds. This will give you access to the user’s name, email etcetc…
  • 13. Just a little more complex … really ! Usually, browsers won’t just ask you for a list of javascriptfiles and run them on the user’s webpage They will have various parts, ex: 1.A set of scripts that will run in the user’s webpage. The browser runs a separate copy of these for each tab. They can read anything in that tab, modify the page etc… 2.A set of scripts that will run in the background. They are not specific to any one webpage/tab in the browser. But they can talk to the first set of scripts This organization of files/code is specific to the browser for which you are making the extension
  • 14. Useful Resources •http://talks.codegram.com/creating-basic-chrome- extensions#/description •Google Chrome Extension Tutorial: https://developer.chrome.com/extensions/overview •Chrome Storage API (lets your extension save data on user’s computer that can be used later) https://developer.chrome.com/apps/storage#property-local