SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
Architecture
of the Web browser


                        Dr. Sabin Buraga
    Faculty of Computer Science, UAIC, Romania
                       www.purl.org/net/busaco
Firefox   Chrome



                  MSIE      Opera




Why we should know
the general architecture
of a Web browser?
user interface




                                                  data persistence
          browser engine


          rendering engine


   net        JS       XML
             inter-                display backend
   work      preter    parser


www.html5rocks.com/en/tutorials/internals/howbrowserswork/
user interface

                         address bar
                 back/forward button
                  bookmarking menu
                                   …
browser engine

         “bridge” between user interface (UI)
                       and rendering engine
browser engine

         “bridge” between user interface (UI)
                       and rendering engine

                                       kernel
                                     plug-ins
                                   extensions
                                     add-ons
rendering engine

            able to render the content available
      of the Web – representations of resources
                        (e.g., HTML documents)
rendering engine

            able to render the content available
      of the Web – representations of resources
                        (e.g., HTML documents)


                      processing the DOM tree
                  corresponding to a Web page
           by applying the CSS style properties
                in order to render information
               within a display area – viewport
rendering engine

                 includes an interpreter (parser)
    depending on the Web document type – DTD




   HTML 4
   XHTML
   HTML 5

                              www.quirksmode.org
rendering engine

                                                    HTML source
            HTML
                                  (stored in a text file – on server)
             Html                                             
           Element
                                                        DOM tree
  HTML                HTML                 (in RAM, on client side)
  Body                Head
 Element             Element

     HTML                HTML
   Paragraph              Title
    Element             Element


     Text
                                                 www.w3.org/DOM/
rendering engine

                    DOM tree
                            
                   render tree
rendering engine

                                render tree
                                         
             visual representation – layout
rendering engine

                                    render tree
                                             
                 visual representation – layout


        computing the width of each content block
                               (width calculation)

                 decisions regarding line breaking

                                     …and others
rendering engine

                     layout
                         
                   painting
rendering engine

                                               layout
                                                   
                                             painting


                                        after painting,
    rendering changes could (locally or globally) occur
                                                     
                           re-layout and/or re-paint
rendering engine

                                     examples:
                                Gecko (Firefox)
                                Presto (Opera)
                                Trident (MSIE)
                    WebKit (Chrome, Safari, iOS)
  Gecko    WebKit



 Trident   Presto
rendering workflow – the Gecko use-case




        https://developer.mozilla.org/en/Gecko
rendering workflow – WebKit



                              www.webkit.org
rendering engine


                                               
                        because – usually – CSS styles
    do not modify the DOM tree, the rendering process
           is not dependent by the loading of CSS files
rendering engine


                                              
      the processing is made in a synchronous manner

   JavaScript programs must be executed immediately
             when the engine spots the JS source-code
             (eventually, loaded from an external URL)
rendering engine


                                           
     implicitly, the rendering process is stopped
    until the JavaScript code is entirely executed
rendering engine


                                           
      the rendering process could be optimized
                           speculative parsing

                      parallel loading of resources
                                  multi-processing
                                                 …
networking

             used to access & transfer data
             (representations of resources)
                   available on the Internet

                                     HTTP
                                    HTTPS
                                     SPDY
networking

                 used to access & transfer data
                 (representations of resources)
                       available on the Internet


             limited number of parallel connections
                                     (usually, 2—6)
display (UI) backend

       able to display common UI components
          (windows, radio buttons,text controls,…)




                             browsershots.org/
JavaScript interpreter

                          interpreting & executing
                              JavaScript programs
                                  on the client side



Carakan (Opera)
Chakra (Microsoft)
Nitro, JavaScriptCore (Apple)
SpiderMonkey, IonMonkey, Rhino (Mozilla)
V8 (Google)
data persistence

          storing data on the client machine
data persistence

          storing data on the client machine




                                       cookies
                        localStorage – HTML5
                                         cache
                                            …
Architecture
of the Web browser



                     

Mais conteúdo relacionado

Mais procurados

Web browser architecture.87 to 88
Web browser architecture.87 to 88Web browser architecture.87 to 88
Web browser architecture.87 to 88
myrajendra
 
Web Design Notes
Web Design NotesWeb Design Notes
Web Design Notes
butest
 

Mais procurados (20)

Web browser architecture.87 to 88
Web browser architecture.87 to 88Web browser architecture.87 to 88
Web browser architecture.87 to 88
 
Web Design Notes
Web Design NotesWeb Design Notes
Web Design Notes
 
Web Development
Web DevelopmentWeb Development
Web Development
 
Web application framework
Web application frameworkWeb application framework
Web application framework
 
Dom(document object model)
Dom(document object model)Dom(document object model)
Dom(document object model)
 
New Elements & Features in HTML5
New Elements & Features in HTML5New Elements & Features in HTML5
New Elements & Features in HTML5
 
Web Design & Development - Session 1
Web Design & Development - Session 1Web Design & Development - Session 1
Web Design & Development - Session 1
 
Web server
Web serverWeb server
Web server
 
Eye catching HTML BASICS tips: Learn easily
Eye catching HTML BASICS tips: Learn easilyEye catching HTML BASICS tips: Learn easily
Eye catching HTML BASICS tips: Learn easily
 
Html Frames
Html FramesHtml Frames
Html Frames
 
ppt of web development for diploma student
ppt of web development for diploma student ppt of web development for diploma student
ppt of web development for diploma student
 
HyperText Transfer Protocol (HTTP)
HyperText Transfer Protocol (HTTP)HyperText Transfer Protocol (HTTP)
HyperText Transfer Protocol (HTTP)
 
Html,javascript & css
Html,javascript & cssHtml,javascript & css
Html,javascript & css
 
HTML5
HTML5HTML5
HTML5
 
Web designing and development
Web designing and developmentWeb designing and development
Web designing and development
 
Difference between-web-designing-and-web-development
Difference between-web-designing-and-web-developmentDifference between-web-designing-and-web-development
Difference between-web-designing-and-web-development
 
JavaScript & Dom Manipulation
JavaScript & Dom ManipulationJavaScript & Dom Manipulation
JavaScript & Dom Manipulation
 
Full-Stack Development
Full-Stack DevelopmentFull-Stack Development
Full-Stack Development
 
JavaScript - Chapter 13 - Browser Object Model(BOM)
JavaScript - Chapter 13 - Browser Object Model(BOM)JavaScript - Chapter 13 - Browser Object Model(BOM)
JavaScript - Chapter 13 - Browser Object Model(BOM)
 
Introduction to html
Introduction to htmlIntroduction to html
Introduction to html
 

Semelhante a Architecture of the Web browser

How browsers work landscape
How browsers work landscapeHow browsers work landscape
How browsers work landscape
anandkishore
 
The Java Content Repository
The Java Content RepositoryThe Java Content Repository
The Java Content Repository
nobby
 
WordCamp Thessaloniki2011 The NextWeb
WordCamp Thessaloniki2011 The NextWebWordCamp Thessaloniki2011 The NextWeb
WordCamp Thessaloniki2011 The NextWeb
George Kanellopoulos
 

Semelhante a Architecture of the Web browser (20)

Rendering engine
Rendering engineRendering engine
Rendering engine
 
soft-shake.ch - Introduction to HTML5
soft-shake.ch - Introduction to HTML5soft-shake.ch - Introduction to HTML5
soft-shake.ch - Introduction to HTML5
 
HTML5 Intoduction for Web Developers
HTML5 Intoduction for Web DevelopersHTML5 Intoduction for Web Developers
HTML5 Intoduction for Web Developers
 
Web browser
Web browserWeb browser
Web browser
 
Web browser
Web browserWeb browser
Web browser
 
Building single page applications
Building single page applicationsBuilding single page applications
Building single page applications
 
How browsers work landscape
How browsers work landscapeHow browsers work landscape
How browsers work landscape
 
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
 
전문가 토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가 토크릴레이 1탄 html5 전망 (전종홍 박사)전문가 토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가 토크릴레이 1탄 html5 전망 (전종홍 박사)
 
Catan world and Churchill
Catan world and ChurchillCatan world and Churchill
Catan world and Churchill
 
HTTP and Website Architecture and Middleware
HTTP and Website Architecture and MiddlewareHTTP and Website Architecture and Middleware
HTTP and Website Architecture and Middleware
 
The Java Content Repository
The Java Content RepositoryThe Java Content Repository
The Java Content Repository
 
Internet Explorer 8
Internet Explorer 8Internet Explorer 8
Internet Explorer 8
 
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
 
Mobile Browser Internal (Blink Rendering Engine)
Mobile Browser Internal (Blink Rendering Engine)Mobile Browser Internal (Blink Rendering Engine)
Mobile Browser Internal (Blink Rendering Engine)
 
Word camp nextweb
Word camp nextwebWord camp nextweb
Word camp nextweb
 
Word camp nextweb
Word camp nextwebWord camp nextweb
Word camp nextweb
 
WordCamp Thessaloniki2011 The NextWeb
WordCamp Thessaloniki2011 The NextWebWordCamp Thessaloniki2011 The NextWeb
WordCamp Thessaloniki2011 The NextWeb
 
Internals - Exploring the webOS Browser and JavaScript
Internals - Exploring the webOS Browser and JavaScriptInternals - Exploring the webOS Browser and JavaScript
Internals - Exploring the webOS Browser and JavaScript
 
Dot Net Nuke Presentation
Dot Net Nuke PresentationDot Net Nuke Presentation
Dot Net Nuke Presentation
 

Mais de Sabin Buraga

Mais de Sabin Buraga (20)

Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleWeb 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturale
 
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebWeb 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
 
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebWeb 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
 
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
 
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelWeb 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
 
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
 
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
 
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTWeb 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma REST
 
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
 
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
 
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeWeb 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
 
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSTAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor Web
 
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSTAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
 
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
 
STAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSTAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.js
 
STAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSTAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului Web
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
 
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSTAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
 
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
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
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
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
 

Architecture of the Web browser

  • 1. Architecture of the Web browser Dr. Sabin Buraga Faculty of Computer Science, UAIC, Romania www.purl.org/net/busaco
  • 2. Firefox Chrome MSIE Opera Why we should know the general architecture of a Web browser?
  • 3. user interface data persistence browser engine rendering engine net JS XML inter- display backend work preter parser www.html5rocks.com/en/tutorials/internals/howbrowserswork/
  • 4. user interface address bar back/forward button bookmarking menu …
  • 5. browser engine “bridge” between user interface (UI) and rendering engine
  • 6. browser engine “bridge” between user interface (UI) and rendering engine kernel plug-ins extensions add-ons
  • 7. rendering engine able to render the content available of the Web – representations of resources (e.g., HTML documents)
  • 8. rendering engine able to render the content available of the Web – representations of resources (e.g., HTML documents) processing the DOM tree corresponding to a Web page by applying the CSS style properties in order to render information within a display area – viewport
  • 9. rendering engine includes an interpreter (parser) depending on the Web document type – DTD HTML 4 XHTML HTML 5 www.quirksmode.org
  • 10. rendering engine HTML source HTML (stored in a text file – on server) Html  Element DOM tree HTML HTML (in RAM, on client side) Body Head Element Element HTML HTML Paragraph Title Element Element Text www.w3.org/DOM/
  • 11. rendering engine DOM tree  render tree
  • 12. rendering engine render tree  visual representation – layout
  • 13. rendering engine render tree  visual representation – layout computing the width of each content block (width calculation) decisions regarding line breaking …and others
  • 14. rendering engine layout  painting
  • 15. rendering engine layout  painting after painting, rendering changes could (locally or globally) occur  re-layout and/or re-paint
  • 16. rendering engine examples: Gecko (Firefox) Presto (Opera) Trident (MSIE) WebKit (Chrome, Safari, iOS) Gecko WebKit Trident Presto
  • 17. rendering workflow – the Gecko use-case https://developer.mozilla.org/en/Gecko
  • 18. rendering workflow – WebKit www.webkit.org
  • 19. rendering engine  because – usually – CSS styles do not modify the DOM tree, the rendering process is not dependent by the loading of CSS files
  • 20. rendering engine  the processing is made in a synchronous manner JavaScript programs must be executed immediately when the engine spots the JS source-code (eventually, loaded from an external URL)
  • 21. rendering engine  implicitly, the rendering process is stopped until the JavaScript code is entirely executed
  • 22. rendering engine  the rendering process could be optimized speculative parsing parallel loading of resources multi-processing …
  • 23. networking used to access & transfer data (representations of resources) available on the Internet HTTP HTTPS SPDY
  • 24. networking used to access & transfer data (representations of resources) available on the Internet limited number of parallel connections (usually, 2—6)
  • 25. display (UI) backend able to display common UI components (windows, radio buttons,text controls,…) browsershots.org/
  • 26. JavaScript interpreter interpreting & executing JavaScript programs on the client side Carakan (Opera) Chakra (Microsoft) Nitro, JavaScriptCore (Apple) SpiderMonkey, IonMonkey, Rhino (Mozilla) V8 (Google)
  • 27. data persistence storing data on the client machine
  • 28. data persistence storing data on the client machine cookies localStorage – HTML5 cache …
  • 29.
  • 30. Architecture of the Web browser 