5. Componente: User Interface
Expone los controles con los que el usuario interactúa con el
browser engine…
Estos son:
- Navbar
- Bookmarks
- Botones varios (Refresh, back)
- Etcs...
6. Es el encargado de coordinar la interacción del usuario con el
motor de rendering
Tareas:
- Expone los métodos para cargar una URL y para navegarla (ir
para atrás, ir para adelante, refresh)
- Se encarga de las notificaciones con respecto a la carga de
una URL hacia el usuario
- Notifica errores de capas siguientes a la UI
Componente: Browser Engine
7. Componente: Rendering engine
Es el componente principal para que un navegador muestre algo en
pantalla
Tareas:
- Representar visualmente un documento
- Interpreta el HTML, XML, JS y CSS en lo que ve el usuario
- Corrige errores de markup
8. Es quien se encarga de los aspectos de comunicación y seguridad
entre la URL que queremos acceder y el servidor donde se encuentra
ese recurso
Tareas:
- Traducciones de caracteres
- Interpretación de los MIME
- Cache de red
Componente: Networking
9. Es el encargado de interpretar y ejecutar código JavaScript que se
encuentra en las webs y enviar la salida al render engine
Puede ser deshabilitado por el usuario...
Componente: JS Interpreter
10. Es una capa de abstracción entre funcionalidad del sistema
operativo y el navegador
También se encarga de dibujar widgets como dropdowns y popups
Componente: User Interface Backend
11. Se encarga de guardar la info que el navegador necesita
Es donde van a parar cosas como:
- Cookies
- Bookmarks
- Session
- Cache
- Preferencias del usuario
- Y desde html 5 -> se encarga de gestionar el Local Storage
Componente: Data Storage
- Es la app que más usamos
- La gran mayoría de servicios están hechos para correr en el
- Es una ventana al mundo :O
- Si hacemos web, debemos saber cómo funciona nuestro anfitrión
- C++
Chrome: 56
Firefox: 14
IE: 12
Safari: 10
Opera: 2
La tokenización es el análisis léxico y la conversión en tokens de los datos de entrada.
Entre los tokens HTML se encuentran las etiquetas iniciales, las etiquetas finales y los valores de atributos.
El tokenizador reconoce el token, lo envía al constructor del árbol y consume el siguiente carácter para reconocer el siguiente token y así sucesivamente hasta llegar al final de los datos.
Parsea / Interpreta el html y css para mostrar el contenido en la pantalla
Hasta el chrome 27 usaba webkit
Obtiene la data de la capa de networking
DOM son las siglas de "Document Object Model" (modelo de objetos del documento). Es la presentación de objetos del documento HTML y la interfaz de los elementos HTML para el mundo exterior
Autocompleta / cierra los tags en caso de ser necesario
Render tree: DOM + CSS Tener en cuenta que solo los objetos que se van a mostrar están en este árbolResuelve los Styles -> Prioridades (User styles, inline, browser defaults)
Arma un DOM con css ya procesado / parseado-> Muestra start en la pantalla del navegador
En este paso se calcula la posición (coordenadas) y el tamaño de cada nodo del DOM que va a aparecer
A cada elemento del render tree se le dan coordinadas de la posición que debe tomar en la página.
Es un proceso recursivo hasta recorrer todos los elementos del árbol
Se pinta cada nodo en base al estilo que tenga asociado en el render tree y la pagina cobra vida!
Es un proceso recursivo hasta recorrer todos los elementos del árbol
WebGL: OpenGL 3D API for the webWebRTC: P2P communication
Real time applications
Parsers JS
WebSockets
Web WorkersWeb ComponentsPerformance improvementsTools for web developersWebTelephony API
Project Maelstrom http://project-maelstrom.bittorrent.com/WebSMS APIContacts APICamera APIBattery API