SlideShare a Scribd company logo
Mozilla Firefox Architecture Vs. Chromium Architecture


                       Group I
             P.P.P.S Pathirana 090364A
              L.N.P.T Perera 090377P
              A.I Ranathunga 090423F
“ software application for retrieving,
       presenting, and traversing
  information resources on the World
              Wide Web”

                               Wikipedia
• Bring information resources to the user for a given
  URL.
• Handle Uniform Resource Identifier
• Direct prefixes that the browser cannot handle to
  another application.
• Identify the web page content and display the
  information
• Identify unsupported file types and direct user to
  download them.
Mozilla Firefox
Mozilla Firefox is a free and open source
web browser developed and maintained
by Mozilla foundation. Firefox is the
second most widely used browser in the
world.


Chromium
chromium is the open source web browser
project from which Google Chrome draws
its source code..
supports tabbed browsing, which allows users to open several
pages in one window.




Integrated customizable download manager is also included
• Remember user history and Data




• Both Firefox and Chrome relies on the extension system.
It follows layered
architectural
Style. Each layer
below
 provides
Services to upper
layer
PIPE AND FILTER
Master slave design
pattern is used. Where
Masters are located at
Network Service Package
and slaves are other
subsystems such as
protocol handler
Gecko is responsible for getting data from Necko subsystem and converting
them into a viewable form.

                                         For that it gets services from other
                                             components such as data
                                           persistence , display backend ..
Etc.

                                          In Rendering and browser engine
                                           there are 6 components such as
                                          document Parser, Content Model,
                                          Frame Constructor, Image Library,
                                                 Style System and Platform
Specific                                  Rendering and Widgets
Security of the Mozilla is implemented using the
    component Personal Security manager
• Personal security manager gets services from
  NSS and provides security services to the
  client.
• NSS provides open source libraries to be
  reused by the client applications and tools to
  manage keys and security models.
• Crypto functions are set of public functions
  that perform cryptographic operations
Views
           Network
                                                         Data

                               Browser Kernel


           JavaScript
             Engine      Rendering                     Extensions
                                             Plugins
              V8          engine

• Multiple instances of Rendering Engine will be used at the same time
• The browser kernel is responsible for managing multiple instances of
  the rendering engine and for implementing the browser kernel API
• Rendering engine uses WebKit opens source layout engine for the
  rendering process
• Chromium browser users a separate optimized JavaScript engine called
  V8 instead of inbuilt JavaScript capabilities of WebKit to increase the
  speed
Brings operating systems’ separate process architecture in to
the browser.
Use separate processes for browser tabs to protect the overall application
from bugs and glitches in the rendering engine (i.e. A malfunction in a single
tab does not affect the overall stability of the browser)


Main process that runs the
 UI and manages tab and
 plugin processes as the
    "browser process".
Likewise, the tab-specific
   processes are called
   "render processes"
Chromium hope to reduce the severity of vulnerabilities by isolating a
  browser’s complex components by adding layers of defense and reducing
                            their privileges.
Two major components
•Browser kernel (high privileged) – interacting with OS, data persistence, network
access. Subjected to OS level security barriers
•Rendering Engine (low privileged) - Chromium uses a modular architecture that places
the complex rendering engine in a low-privilege sandbox
Plugins are created by third party vendors. They cause many
security vulnerabilities and instabilities. Sandboxing can not be
used here because they are not designed to run in Chromium’s
sandboxed architecture.
                                   To compromise security, stability and
                                   usability solution is to run each plugin as
                                   separate process. Rendering engine
                                   instances will communicate with them
                                   through IPCs
 Advantages of running each plugin as a separate process
 •Each plugin is run with users privileges. This improves usability (e.g. the
 Flash Player plug-in can use the user's microphone and webcam)
 •Crash of a plugin does not affect over all browser stability
Vendors could write future versions of plug-ins that operate within
Chromium's sandbox, to provide greater defense against plug-in
exploits.
• Chromium's separate process architecture and
  it’s V8 JavaScript engine makes it fast

• Firefox maintains threads for each search
  instance. So that chrome has become more
  faster.
• Because of different rendering processes and
  plugin processes in chrome error in a
  rendering task or browser plugin does not
  affect the stability of the overall browser

• Firefox has a disadvantage in this case
  because if one plugin crashes it affects all
  other pages. Electrolysis project is underway
  to introduce process based browsing.
• Chromium's sandbox architecture protects
  browser kernel and OS from malicious codes

• Firefox onion architecture for cryptographic
  operations protects main crypto code in
  Personal Security Manager.
• Separate process architecture in chromium
  uses more memory and CPU.



• Firefox has its own advantage in this case.
  Because it uses one single process and
  memory consumption is very low comparing
  to chrome.

More Related Content

What's hot

Rendering engine
Rendering engineRendering engine
Rendering engine
Dharita Chokshi
 
B2g
B2gB2g
Webtop
WebtopWebtop
Webtop
nish_d1
 
1 - demo lab using vmware workstation
1 - demo lab using vmware workstation1 - demo lab using vmware workstation
1 - demo lab using vmware workstation
Mangat R K
 
Cross browser web development
Cross browser web developmentCross browser web development
Cross browser web development
Ilya Starostin
 
SQL Queries on Smalltalk Objects
SQL Queries on Smalltalk ObjectsSQL Queries on Smalltalk Objects
SQL Queries on Smalltalk Objects
ESUG
 
Weblogic server short
Weblogic server shortWeblogic server short
Weblogic server short
Samatha Kamuni
 
DotNetNuke
DotNetNukeDotNetNuke
DotNetNuke
jitendraparmar
 
Dot Net Nuke
Dot Net NukeDot Net Nuke
Dot Net Nuke
jitendraparmar
 
Treinamento S60 WRT - CETELI UFAM INDT
Treinamento S60 WRT - CETELI UFAM INDTTreinamento S60 WRT - CETELI UFAM INDT
Treinamento S60 WRT - CETELI UFAM INDT
allanbezerra
 
Hardware Acceleration in WebKit
Hardware Acceleration in WebKitHardware Acceleration in WebKit
Hardware Acceleration in WebKit
Joone Hur
 
Meet Magento Belarus 2015: Jurģis Lukss
Meet Magento Belarus 2015: Jurģis LukssMeet Magento Belarus 2015: Jurģis Lukss
Meet Magento Belarus 2015: Jurģis Lukss
Amasty
 
Web server
Web serverWeb server
Web server
debasish duarah
 
Developing in MODx
Developing in MODxDeveloping in MODx
Developing in MODx
MODxpo
 
Chrome Internals: Paint and Composition
Chrome Internals: Paint and CompositionChrome Internals: Paint and Composition
Chrome Internals: Paint and Composition
Dzmitry Varabei
 
Roman Chernov.Panels custom layouts.DrupalCampKyiv 2011
Roman Chernov.Panels custom layouts.DrupalCampKyiv 2011Roman Chernov.Panels custom layouts.DrupalCampKyiv 2011
Roman Chernov.Panels custom layouts.DrupalCampKyiv 2011
camp_drupal_ua
 
Xoops x
Xoops xXoops x
Xoops x
Yoshi Sakai
 
Microservices Architecture and Containers.
Microservices Architecture and Containers.Microservices Architecture and Containers.
Microservices Architecture and Containers.
imjacobclark
 
Legacy To Docker - Lessons learned and demo of OpenUnison
Legacy To Docker - Lessons learned and demo of OpenUnisonLegacy To Docker - Lessons learned and demo of OpenUnison
Legacy To Docker - Lessons learned and demo of OpenUnison
Marc Boorshtein
 
Mule technologies
Mule technologiesMule technologies
Mule technologies
D.Rajesh Kumar
 

What's hot (20)

Rendering engine
Rendering engineRendering engine
Rendering engine
 
B2g
B2gB2g
B2g
 
Webtop
WebtopWebtop
Webtop
 
1 - demo lab using vmware workstation
1 - demo lab using vmware workstation1 - demo lab using vmware workstation
1 - demo lab using vmware workstation
 
Cross browser web development
Cross browser web developmentCross browser web development
Cross browser web development
 
SQL Queries on Smalltalk Objects
SQL Queries on Smalltalk ObjectsSQL Queries on Smalltalk Objects
SQL Queries on Smalltalk Objects
 
Weblogic server short
Weblogic server shortWeblogic server short
Weblogic server short
 
DotNetNuke
DotNetNukeDotNetNuke
DotNetNuke
 
Dot Net Nuke
Dot Net NukeDot Net Nuke
Dot Net Nuke
 
Treinamento S60 WRT - CETELI UFAM INDT
Treinamento S60 WRT - CETELI UFAM INDTTreinamento S60 WRT - CETELI UFAM INDT
Treinamento S60 WRT - CETELI UFAM INDT
 
Hardware Acceleration in WebKit
Hardware Acceleration in WebKitHardware Acceleration in WebKit
Hardware Acceleration in WebKit
 
Meet Magento Belarus 2015: Jurģis Lukss
Meet Magento Belarus 2015: Jurģis LukssMeet Magento Belarus 2015: Jurģis Lukss
Meet Magento Belarus 2015: Jurģis Lukss
 
Web server
Web serverWeb server
Web server
 
Developing in MODx
Developing in MODxDeveloping in MODx
Developing in MODx
 
Chrome Internals: Paint and Composition
Chrome Internals: Paint and CompositionChrome Internals: Paint and Composition
Chrome Internals: Paint and Composition
 
Roman Chernov.Panels custom layouts.DrupalCampKyiv 2011
Roman Chernov.Panels custom layouts.DrupalCampKyiv 2011Roman Chernov.Panels custom layouts.DrupalCampKyiv 2011
Roman Chernov.Panels custom layouts.DrupalCampKyiv 2011
 
Xoops x
Xoops xXoops x
Xoops x
 
Microservices Architecture and Containers.
Microservices Architecture and Containers.Microservices Architecture and Containers.
Microservices Architecture and Containers.
 
Legacy To Docker - Lessons learned and demo of OpenUnison
Legacy To Docker - Lessons learned and demo of OpenUnisonLegacy To Docker - Lessons learned and demo of OpenUnison
Legacy To Docker - Lessons learned and demo of OpenUnison
 
Mule technologies
Mule technologiesMule technologies
Mule technologies
 

Viewers also liked

Firefox OS
Firefox OSFirefox OS
Firefox OS
abdelrahman samy
 
Introduction to firefox os
Introduction to firefox osIntroduction to firefox os
Introduction to firefox os
H Mohammed Rajjaz
 
An Introduction to Firefox (高應大)
An Introduction to Firefox (高應大)An Introduction to Firefox (高應大)
An Introduction to Firefox (高應大)
Irvin Chen
 
Operating system
Operating systemOperating system
Operating system
Ahmed Hesham
 
Operating Systems in Mobile Phones
Operating Systems in Mobile PhonesOperating Systems in Mobile Phones
Operating Systems in Mobile Phones
SasukeJUchiha
 
Advantages and disadvantages of an ajax based client application
Advantages and disadvantages of an ajax based client applicationAdvantages and disadvantages of an ajax based client application
Advantages and disadvantages of an ajax based client application
Placinta Alin
 
مقدمة نظام التشغيل مفهومه و أنواعه
مقدمة نظام التشغيل مفهومه و أنواعهمقدمة نظام التشغيل مفهومه و أنواعه
مقدمة نظام التشغيل مفهومه و أنواعه
khadija meddah
 
Firefox operating system
Firefox operating systemFirefox operating system
Firefox operating system
Nishant Mehare
 
Arabic Introduction For Firefox OS
Arabic Introduction For Firefox OS Arabic Introduction For Firefox OS
Arabic Introduction For Firefox OS
mohamed Hafez
 
Introduction to Tiny OS
Introduction to Tiny OSIntroduction to Tiny OS
Introduction to Tiny OS
Sudharsan S
 
Firefox os-introduction
Firefox os-introductionFirefox os-introduction
Firefox os-introduction
zsoltlengyelit
 
Different types of operating systems
Different  types  of  operating  systems Different  types  of  operating  systems
Different types of operating systems
Mehul Jain
 
Building Chrome Extensions
Building Chrome ExtensionsBuilding Chrome Extensions
Building Chrome Extensions
Ron Reiter
 
انظمة التشغيل
انظمة التشغيلانظمة التشغيل
انظمة التشغيل
د.فداء الشنيقات
 
Chrome extensions
Chrome extensions Chrome extensions
Chrome extensions
Ahmad Tahhan
 
What is Firefox OS
What is Firefox OSWhat is Firefox OS
What is Firefox OS
Chit Thiri Maung
 
IBM Internet-of-Things architecture and capabilities
IBM Internet-of-Things architecture and capabilitiesIBM Internet-of-Things architecture and capabilities
IBM Internet-of-Things architecture and capabilities
IBM_Info_Management
 
Ibm_IoT_Architecture_and_Capabilities
Ibm_IoT_Architecture_and_CapabilitiesIbm_IoT_Architecture_and_Capabilities
Ibm_IoT_Architecture_and_Capabilities
IBM_Info_Management
 
Web Browsers
Web BrowsersWeb Browsers
Web Browsers
Neha Sharma
 
Slideshare signup tutorial
Slideshare signup tutorialSlideshare signup tutorial
Slideshare signup tutorial
bestabrook
 

Viewers also liked (20)

Firefox OS
Firefox OSFirefox OS
Firefox OS
 
Introduction to firefox os
Introduction to firefox osIntroduction to firefox os
Introduction to firefox os
 
An Introduction to Firefox (高應大)
An Introduction to Firefox (高應大)An Introduction to Firefox (高應大)
An Introduction to Firefox (高應大)
 
Operating system
Operating systemOperating system
Operating system
 
Operating Systems in Mobile Phones
Operating Systems in Mobile PhonesOperating Systems in Mobile Phones
Operating Systems in Mobile Phones
 
Advantages and disadvantages of an ajax based client application
Advantages and disadvantages of an ajax based client applicationAdvantages and disadvantages of an ajax based client application
Advantages and disadvantages of an ajax based client application
 
مقدمة نظام التشغيل مفهومه و أنواعه
مقدمة نظام التشغيل مفهومه و أنواعهمقدمة نظام التشغيل مفهومه و أنواعه
مقدمة نظام التشغيل مفهومه و أنواعه
 
Firefox operating system
Firefox operating systemFirefox operating system
Firefox operating system
 
Arabic Introduction For Firefox OS
Arabic Introduction For Firefox OS Arabic Introduction For Firefox OS
Arabic Introduction For Firefox OS
 
Introduction to Tiny OS
Introduction to Tiny OSIntroduction to Tiny OS
Introduction to Tiny OS
 
Firefox os-introduction
Firefox os-introductionFirefox os-introduction
Firefox os-introduction
 
Different types of operating systems
Different  types  of  operating  systems Different  types  of  operating  systems
Different types of operating systems
 
Building Chrome Extensions
Building Chrome ExtensionsBuilding Chrome Extensions
Building Chrome Extensions
 
انظمة التشغيل
انظمة التشغيلانظمة التشغيل
انظمة التشغيل
 
Chrome extensions
Chrome extensions Chrome extensions
Chrome extensions
 
What is Firefox OS
What is Firefox OSWhat is Firefox OS
What is Firefox OS
 
IBM Internet-of-Things architecture and capabilities
IBM Internet-of-Things architecture and capabilitiesIBM Internet-of-Things architecture and capabilities
IBM Internet-of-Things architecture and capabilities
 
Ibm_IoT_Architecture_and_Capabilities
Ibm_IoT_Architecture_and_CapabilitiesIbm_IoT_Architecture_and_Capabilities
Ibm_IoT_Architecture_and_Capabilities
 
Web Browsers
Web BrowsersWeb Browsers
Web Browsers
 
Slideshare signup tutorial
Slideshare signup tutorialSlideshare signup tutorial
Slideshare signup tutorial
 

Similar to Firefox vs. chrome

Web browser architecture.87 to 88
Web browser architecture.87 to 88Web browser architecture.87 to 88
Web browser architecture.87 to 88
myrajendra
 
منصة شليلة
منصة شليلةمنصة شليلة
منصة شليلة
ssuser81f53f
 
Php Web Frameworks
Php Web FrameworksPhp Web Frameworks
Php Web Frameworks
Shreyans Jasoriya
 
Chromium os architecture report
Chromium os  architecture reportChromium os  architecture report
Chromium os architecture report
Amr Abd El Latief
 
Internet browsers by Andres Haydar
Internet browsers by Andres HaydarInternet browsers by Andres Haydar
Internet browsers by Andres Haydar
AndresHaydar
 
9 10 july2020
9 10 july20209 10 july2020
9 10 july2020
PreetiSaini55
 
Trabajo de jose
Trabajo de jose Trabajo de jose
Trabajo de jose
josemgg
 
Microsoft .Net Technology
Microsoft .Net TechnologyMicrosoft .Net Technology
Microsoft .Net Technology
vijayakumari kaliannan
 
Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!
Shelly Megan
 
Dot net Online Training | .Net Training and Placement online
Dot net Online Training | .Net Training and Placement onlineDot net Online Training | .Net Training and Placement online
Dot net Online Training | .Net Training and Placement online
Garuda Trainings
 
History of silverlight versions and its features
History of silverlight versions and its featuresHistory of silverlight versions and its features
History of silverlight versions and its features
Diya Singh
 
My androidpresentation
My androidpresentationMy androidpresentation
My androidpresentation
niteshnarayanlal
 
Diagnosing issues in your ASP.NET applications in production with Visual Stud...
Diagnosing issues in your ASP.NET applications in production with Visual Stud...Diagnosing issues in your ASP.NET applications in production with Visual Stud...
Diagnosing issues in your ASP.NET applications in production with Visual Stud...
Microsoft Developer Network (MSDN) - Belgium and Luxembourg
 
Architecture Proposition For Multimedia repository
Architecture Proposition For Multimedia repositoryArchitecture Proposition For Multimedia repository
Architecture Proposition For Multimedia repository
McRaken
 
Srs document for identity based secure distributed data storage schemes
Srs document for identity based secure distributed data storage schemesSrs document for identity based secure distributed data storage schemes
Srs document for identity based secure distributed data storage schemes
Sahithi Naraparaju
 
Android application development
Android application developmentAndroid application development
Android application development
Linh Vi Tường
 
01/2009 - Portral development with liferay
01/2009 - Portral development with liferay01/2009 - Portral development with liferay
01/2009 - Portral development with liferay
daveayan
 
Midori ppt
Midori pptMidori ppt
Midori ppt
Keerthi Prakash
 
OpenProdoc Overview
OpenProdoc OverviewOpenProdoc Overview
OpenProdoc Overview
jhierrot
 
Browsers .
Browsers .Browsers .
Browsers .
seripa3
 

Similar to Firefox vs. chrome (20)

Web browser architecture.87 to 88
Web browser architecture.87 to 88Web browser architecture.87 to 88
Web browser architecture.87 to 88
 
منصة شليلة
منصة شليلةمنصة شليلة
منصة شليلة
 
Php Web Frameworks
Php Web FrameworksPhp Web Frameworks
Php Web Frameworks
 
Chromium os architecture report
Chromium os  architecture reportChromium os  architecture report
Chromium os architecture report
 
Internet browsers by Andres Haydar
Internet browsers by Andres HaydarInternet browsers by Andres Haydar
Internet browsers by Andres Haydar
 
9 10 july2020
9 10 july20209 10 july2020
9 10 july2020
 
Trabajo de jose
Trabajo de jose Trabajo de jose
Trabajo de jose
 
Microsoft .Net Technology
Microsoft .Net TechnologyMicrosoft .Net Technology
Microsoft .Net Technology
 
Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!Prominent Back-end frameworks to consider in 2022!
Prominent Back-end frameworks to consider in 2022!
 
Dot net Online Training | .Net Training and Placement online
Dot net Online Training | .Net Training and Placement onlineDot net Online Training | .Net Training and Placement online
Dot net Online Training | .Net Training and Placement online
 
History of silverlight versions and its features
History of silverlight versions and its featuresHistory of silverlight versions and its features
History of silverlight versions and its features
 
My androidpresentation
My androidpresentationMy androidpresentation
My androidpresentation
 
Diagnosing issues in your ASP.NET applications in production with Visual Stud...
Diagnosing issues in your ASP.NET applications in production with Visual Stud...Diagnosing issues in your ASP.NET applications in production with Visual Stud...
Diagnosing issues in your ASP.NET applications in production with Visual Stud...
 
Architecture Proposition For Multimedia repository
Architecture Proposition For Multimedia repositoryArchitecture Proposition For Multimedia repository
Architecture Proposition For Multimedia repository
 
Srs document for identity based secure distributed data storage schemes
Srs document for identity based secure distributed data storage schemesSrs document for identity based secure distributed data storage schemes
Srs document for identity based secure distributed data storage schemes
 
Android application development
Android application developmentAndroid application development
Android application development
 
01/2009 - Portral development with liferay
01/2009 - Portral development with liferay01/2009 - Portral development with liferay
01/2009 - Portral development with liferay
 
Midori ppt
Midori pptMidori ppt
Midori ppt
 
OpenProdoc Overview
OpenProdoc OverviewOpenProdoc Overview
OpenProdoc Overview
 
Browsers .
Browsers .Browsers .
Browsers .
 

Recently uploaded

Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 

Recently uploaded (20)

Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 

Firefox vs. chrome

  • 1. Mozilla Firefox Architecture Vs. Chromium Architecture Group I P.P.P.S Pathirana 090364A L.N.P.T Perera 090377P A.I Ranathunga 090423F
  • 2. “ software application for retrieving, presenting, and traversing information resources on the World Wide Web” Wikipedia
  • 3. • Bring information resources to the user for a given URL. • Handle Uniform Resource Identifier • Direct prefixes that the browser cannot handle to another application. • Identify the web page content and display the information • Identify unsupported file types and direct user to download them.
  • 4. Mozilla Firefox Mozilla Firefox is a free and open source web browser developed and maintained by Mozilla foundation. Firefox is the second most widely used browser in the world. Chromium chromium is the open source web browser project from which Google Chrome draws its source code..
  • 5. supports tabbed browsing, which allows users to open several pages in one window. Integrated customizable download manager is also included
  • 6. • Remember user history and Data • Both Firefox and Chrome relies on the extension system.
  • 7. It follows layered architectural Style. Each layer below provides Services to upper layer
  • 8.
  • 10. Master slave design pattern is used. Where Masters are located at Network Service Package and slaves are other subsystems such as protocol handler
  • 11. Gecko is responsible for getting data from Necko subsystem and converting them into a viewable form. For that it gets services from other components such as data persistence , display backend .. Etc. In Rendering and browser engine there are 6 components such as document Parser, Content Model, Frame Constructor, Image Library, Style System and Platform Specific Rendering and Widgets
  • 12. Security of the Mozilla is implemented using the component Personal Security manager
  • 13. • Personal security manager gets services from NSS and provides security services to the client. • NSS provides open source libraries to be reused by the client applications and tools to manage keys and security models. • Crypto functions are set of public functions that perform cryptographic operations
  • 14. Views Network Data Browser Kernel JavaScript Engine Rendering Extensions Plugins V8 engine • Multiple instances of Rendering Engine will be used at the same time • The browser kernel is responsible for managing multiple instances of the rendering engine and for implementing the browser kernel API • Rendering engine uses WebKit opens source layout engine for the rendering process • Chromium browser users a separate optimized JavaScript engine called V8 instead of inbuilt JavaScript capabilities of WebKit to increase the speed
  • 15. Brings operating systems’ separate process architecture in to the browser. Use separate processes for browser tabs to protect the overall application from bugs and glitches in the rendering engine (i.e. A malfunction in a single tab does not affect the overall stability of the browser) Main process that runs the UI and manages tab and plugin processes as the "browser process". Likewise, the tab-specific processes are called "render processes"
  • 16. Chromium hope to reduce the severity of vulnerabilities by isolating a browser’s complex components by adding layers of defense and reducing their privileges. Two major components •Browser kernel (high privileged) – interacting with OS, data persistence, network access. Subjected to OS level security barriers •Rendering Engine (low privileged) - Chromium uses a modular architecture that places the complex rendering engine in a low-privilege sandbox
  • 17. Plugins are created by third party vendors. They cause many security vulnerabilities and instabilities. Sandboxing can not be used here because they are not designed to run in Chromium’s sandboxed architecture. To compromise security, stability and usability solution is to run each plugin as separate process. Rendering engine instances will communicate with them through IPCs Advantages of running each plugin as a separate process •Each plugin is run with users privileges. This improves usability (e.g. the Flash Player plug-in can use the user's microphone and webcam) •Crash of a plugin does not affect over all browser stability Vendors could write future versions of plug-ins that operate within Chromium's sandbox, to provide greater defense against plug-in exploits.
  • 18. • Chromium's separate process architecture and it’s V8 JavaScript engine makes it fast • Firefox maintains threads for each search instance. So that chrome has become more faster.
  • 19. • Because of different rendering processes and plugin processes in chrome error in a rendering task or browser plugin does not affect the stability of the overall browser • Firefox has a disadvantage in this case because if one plugin crashes it affects all other pages. Electrolysis project is underway to introduce process based browsing.
  • 20. • Chromium's sandbox architecture protects browser kernel and OS from malicious codes • Firefox onion architecture for cryptographic operations protects main crypto code in Personal Security Manager.
  • 21. • Separate process architecture in chromium uses more memory and CPU. • Firefox has its own advantage in this case. Because it uses one single process and memory consumption is very low comparing to chrome.

Editor's Notes

  1. The architectures we selected to analyze are two browser architectures.
  2. Lets first look at what a browser is. According to Wikipedia, a browser is “a software application for retrieving presenting, and traversing information resources on the World Wide Web”. Here the “Information resources” can be identified by a URI (Uniform resource identifier) and it can be a web page, image, video, or other piece of content. A web browser can also defined as a software that enable the users to access the internet.
  3. Before discuss about the browser architectures, let’s first look at the main functionalities of a web browser. Bring information for a given URL. This process begins when a user inputs a URL (Uniform Resource Locator) into the browser. Handle URI. URI determines how the URL will be interpreted. The most commonly used URI is “htttp”. If the web browser can not handle the prefix (URI), then it will passes to another application Once the resource has been retrieved the web browser displays it to the user. Web browsers can generally display any kind of content that can be a part of a web page. If browser encounter a file of an unsupported type, the browser prompts the user to save the file to disk
  4. The two architecture we are going to compare are Mozila firefox and Chromium. Mozila firefox is a free and open source web browser and it is the second most widely used browser. Firefox runs on various operating systems. To display web pages, it uses the Gecko layout engine which implements many current web standards. Chromium is the open source web browser project which Google chrome draws its source code. The major aim of this is to have a tabbed window manager than the traditional browser application. Later slides will discuss the other features of these two browsers.
  5. Both app lications support tabbed browsing, which gives the ability to switch between several open web pages within a single web browser window by clicking on tabs. Both support integrated customizable download manager.
  6. Both allow the user to relocate the history data. Both Firefox and Chrome relies on the extension system to allow users to modify the browser according to their requirements instead of providing all features in the standard distribution.
  7. User Interface Components UI provides the methods to components to interact with user. UI components like search bar and buttons like print , refresh, go, home are there at user interface. Browser Engine high-level interface to the Rendering Engine by UI. So it provides methods to initiate the loading of a URL and other high-level browsing actions (reload, back, forward). Rendering Engine Organizes the visual representation of the browser. The Rendering Engine interprets the HTML, XML, and JavaScript that comprises a given URL and generates the layout that is displayed in the User Interface. Main role of the rendering engine is html parser. Networking component Handles HTTP and FTP requests . It also handles internet communication and security, character set translations and MIME type resolution. And it caches the web pages also. JavaScript interpreter executes the JavaScript code that is embedded in a website. Then it sends it to rendering engine to get the visual effects. The XML Parser component is used to parse XML documents. The Display Backend component Working with the operating system and provides drawing and windowing methods which depends on OS. Main architecture is consisting of layered architecture style where each layer below provides services to layer above.
  8. Brief introduction to components Network services. Network services contains components used by other subsystems. Manages the protocol drivers and provides an interface making objects URI strings URI. manages nsSocketTransportService takes transport service based physical Internet protocol drivers and connections. And also it contains listeners such as nsSyncStreamListener and nsAsyncStreamListener which objects are passed to nsIChannel instance. Protocol handler Protocol handler chooses what protocol should be followed according to the specific protocol choosen at the UI level. So that is a layer between UI and Socket Transport. And it also creates channels. Channel can be used to get a socket transport or file transport. Socket transport is used to get internet connection and file transport is used to get file system connection. Socket Transport Layer between protocol handler and internet. Facilitates all socket threads when connecting to internet. There are also another components between these two layers. Stream Converter Conversion services are done like converting text to HTML in case the text cannot be handled by protocol handler. Security Security is managed by Personal Security Manager (PSM) which handles cryptographic operations. Applications use PSM client library to get its services. Necko Utility Works independently of the other components and provides common services to all other components. And also there are other modules such as DNS, COOKIE, MIME and cache where the name implies what each component is responsible for .
  9. Pipe and Filter structure In a pipe and filter style each component has a set of input streams and a set of output streams. A component reads streams of data on its input streams, processes the data and writes the resulting data on its output streams. Hence components are termed filters. The connectors of this style merge the streams together, they transmit outputs of one filter to inputs of another filter. Hence the connectors are termed pipes. First URL object is created and passed to Network Service which identifies the protocol that the URL belongs to(http,ftp, gopher..etc). The protocol handler instantiates a protocol connection . Then it creates transport object which represents physical connection to the relevant data. When incomming data is received it is notified to the application which it runs.
  10. Master slave design pattern Master slave design pattern is used where an identical computation must be performed many times, but with different inputs and context. So that master creates separate threads for each slave and let them run independently. And finally it collects the outcomes of each thread and reports to clients. In this case single socket transport thread is created in Network Service Package. Then it creates several file descriptor threads which acts as slaves.
  11. Provides a large variety of cipher suites for key exchange, digital signatures, bulk encryption, and data integrity. Manages certificates for mutual authentication.  Manages passwords and cookies.  Very user-friendly UI for the users to customize their security settings. Easy to understand if you have some basic knowledge about Internet security  Easy access to the security info of a particular page  Othe PKI functions. Supports embedding systems to use the cryptographic components without the UI. High performance – fast enough for disk encryption The goal is 1MB per second for both encryption and decrypton The public functions listed here perform cryptographic operations via the PKCS #11 interface.If documentation is available for a function listed below, the function name is linked to its entry in the SSL Reference. The LXR summary for each function provides links to the function definition, prototype definition, and source code references. The NSS version column indicates which versions of NSS support the function.
  12. This is a very high level diagram. Each component here consist of many other components. Rendering engine uses the browser kernel API is to issue network requests, access persistent storage, and display bitmaps on the user's screen. Separate instances of rendering engine will be instantiated as a separate process for each tab. This will increase the robustness and performance. Will be explained in detail in the next slide Architecture is designed as more third party extensions can be plugged in to the system. This increases the extendibility. By using separate components maintainability is enhanced. ( as an example Java script engine can be updated or replaced with another one without affecting the other parts. Specific architectural designs used in chromium will be discussed in next slides
  13. In computer security, a sandbox is a security mechanism for separating running programs. It is often used to execute untested code, or untrusted programs from unverified third-parties, suppliers, untrusted users and untrusted websites.( Definition given in Wikipedia ) The sandbox aims to prevent the rendering engine from interacting with other processes and the user’s operating system, except by exchanging messages with the browser kernel via an IPC (Inter process communication) channel. These security mechanisms block access to any files, devices, and other resources on the user’s computer. Even if an attacker is able to exploit a vulnerability and run malicious code in the rendering engine, the sandbox will block the attacker’s attempts to install malware on the user’s computer or to read sensitive files from the user’s hard drive. Reducing privileges cause engineering challenges to the designer. Will be discussed in the next slide
  14. Browser plugins are a essential thing in web browsing so it has to be supported somehow. Chromium introduces this architecture which have a good balance between usability stability and security.
  15. Firefox Good for the machines with low ram and cpu power.