The document discusses the WebKit project and how to contribute to it. It describes WebKit as an open source web browser engine used in browsers and other applications. It provides information on WebKit's architecture, goals, features, ports to different platforms, and the WebKit2 API. It also discusses the large WebKit community, how work is tracked, and how developers can contribute through bug fixing, new features, or creating new ports.
React is a JavaScript library for building user interfaces. It was created by Facebook and is best for building dynamic websites like chat applications. React uses a virtual DOM for efficiently updating the view after data changes. Components are the building blocks of React and can contain state and props. The document provides an example of a simple component class and demonstrates how to add state and props. It also includes links to example code and MicroPyramid's social media profiles.
jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...
( ** Full Stack Masters Training: https://www.edureka.co/masters-program/full-stack-developer-training ** )
This PPT on jQuery will help you understand the basics of jQuery and you will also be able to create your own program using jQuery by the end of this PPT.
Follow us to never miss an update in the future.
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Node.js is a server-side JavaScript platform built on Google's V8 engine. It is non-blocking and asynchronous, making it suitable for data-intensive real-time applications. The document discusses how to install Node.js and its dependencies on Ubuntu, introduces key Node.js concepts like events and the event loop, and provides examples of popular Node.js packages and use cases.
React is a JavaScript library for building user interfaces. It uses a component-based approach where UI is broken into independent, reusable pieces called components. Components are like functions that return markup describing part of a view. React uses a virtual DOM to efficiently update the real DOM by only making necessary changes. This improves performance by avoiding expensive DOM operations and minimizing DOM access. Components receive data and callbacks through properties and local state is updated using setState(), triggering a re-render of changed parts of the UI.
The document discusses the process of rendering and layout in WebKit. It explains that WebKit parses HTML into a DOM tree and applies CSS styles to create a render tree. It then lays out elements based on their metrics and computed styles to establish positioning. Finally, it paints the render tree onto the screen by traversing it and issuing drawing commands to the underlying graphics system. The document provides details on how style calculations, layout, and painting optimizations work to efficiently display content on the web.
Hooks are functions that allow you to "hook into" React state and lifecycle features from function components. There are three main rules for using hooks: only call them at the top level, only from React functions, and you can call them from custom hooks. Hooks help solve issues with class components by allowing stateful logic to be reused without changing component hierarchy and making complex components easier to understand and test. While hooks provide benefits, there is no need to immediately use them everywhere and classes will continue to be supported.
Routing in Angular allows directing users to different pages/components based on their navigation choices. It defines routes for pages by creating components and linking them in the routes configuration. Components can link to routes using routerLink and navigate between them in code using the Router service. Route guards prevent navigation under certain conditions. Lazy loading allows splitting the app into smaller modules to improve performance. Code is cleaned up by exporting all imports from a single index file.
This document provides an introduction to jQuery, covering its features, comparisons to other frameworks, selectors, and plugins. jQuery is an open-source JavaScript library that simplifies DOM manipulation, event handling, animations, and Ajax interactions. It uses CSS-style selectors to select and manipulate HTML elements. Some key features include DOM element selections, DOM traversal/modification, DOM manipulation based on CSS selectors, events, effects/animations, Ajax, and extensibility through plugins. The document also discusses jQuery versus other frameworks like Dojo and YUI, demonstrates basic selectors and methods, and encourages the use of plugins to add additional functionality.
ReactJS is arguably the most popular Javascript framework around for web development today. With more and more teams exploring and adopting React, here is TechTalks presentation elaborating fundamentals of React, in a code along session
jQuery is a popular JavaScript library that makes HTML document traversal and manipulation, event handling, animation, and Ajax interactions more simple. It works across browsers and allows developers to write less code using its easy-to-use API. The document discusses how jQuery works, including how to launch code on document ready, add and remove HTML classes, and use callbacks and functions when passing arguments to other functions.
Tutorial Videos: https://www.youtube.com/playlist?list=PLD8nQCAhR3tQ7KXnvIk_v_SLK-Fb2y_k_
Day 1 : Introduction to React, Babel and Webpack
Prerequisites of starting the workshop ( Basic understanding of Node & Express )
What is Virtual DOM?
What is React and why should we use it?
Install and set up React:
a-Using create-react-app
b-From scratch using Babel and Webpack. We will use Webpack Dev Server.
Day 2 : React Basic Concepts
Types of Components: Class-based and Functional based Components
Use of JSX
Parent, Child, and Nested Components
Difference between State and Props
Create and Handle Routes
Component Lifecycle Methods
Create a form and handling form inputs
Use of arrow functions and Spread Operator
Day 3: Advanced Concepts in React
Use of Refs
What are Higher Order Components( HOC )?
How to use HOC
Understanding Context in React
The document provides an introduction to ReactJS, including:
- ReactJS is a JavaScript library developed by Facebook for building user interfaces.
- It uses virtual DOM for rendering UI components efficiently. Only updated components are re-rendered.
- Components are the basic building blocks of React apps. They accept input and return React elements to describe what should appear on the screen.
- The main steps to set up a React app are installing React and ReactDOM libraries, adding JSX syntax, and rendering components onto the DOM using ReactDOM.render().
Puppeteer allows controlling headless or headed Chrome over the DevTools Protocol. It provides a high-level API for common tasks like taking screenshots, navigating pages, and interacting with page elements. The Chrome DevTools Protocol exposes APIs that allow tools to instrument, inspect, debug and profile the browser. Puppeteer uses this to provide convenient methods for automating browser actions and interacting with pages. Existing Selenium tests can leverage the DevTools Protocol by connecting to the browser instance controlled by ChromeDriver.
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
This document summarizes Juan J. Sánchez's presentation on WebKit and Blink. It discusses:
1) The history and goals of the WebKit project from 2004-2013, including its features, architecture, ports, and licenses.
2) The WebKit community, including types of contributors, tools used, and events held.
3) The creation of Blink in 2013 when Google forked WebKit, the motivations behind it, and its impact on the WebKit community.
4) The current status of WebKit and Blink projects and their future perspectives.
The document discusses the main components of a web browser, including the user interface, browser engine, rendering engine, networking, JavaScript interpreter, UI backend, and data storage. It provides details on how different browsers use different rendering engines, such as Gecko, WebKit, Blink, and Trident. The rendering engine is responsible for parsing HTML and CSS to construct the DOM and render tree before layout, painting and displaying the web page.
This document discusses the Blink rendering engine used in Chromium and Chrome. It begins with an overview of web browser basics, including the rendering engine flow, DOM, CSS, parsing, and layout/rendering. It then covers the evolution from KHTML to WebKit to Blink. Key aspects of Blink covered include its multi-process architecture with separate browser and renderer processes, inter-process communication (IPC), multi-process resource loading, and the rendering path including software rendering, hardware acceleration using the GPU process, and threaded compositing.
Hardware Acceleration in WebKit provides concise summaries of key points:
1) WebKit uses various techniques like off-screen buffers, JIT compilation, and graphics acceleration to improve browsing performance. Graphics acceleration reduces CPU usage by offloading tasks like rendering to the GPU.
2) WebKit supports hardware acceleration of video playback and 2D canvas rendering through interfaces to video and graphics hardware. This allows smoother playback and animation.
3) Accelerated compositing in WebKit uses multiple tree structures integrated with the rendering process to take advantage of GPU acceleration for CSS3 effects, transitions, animations, and HTML5 video through interfaces like OpenCL.
Igalia is working on enabling Chromium to run natively on Wayland-based Linux systems by improving the Ozone/Wayland implementation. There are ongoing discussions around implementing external window mode in Ozone to allow Chromium windows to be separate from the host desktop, as well as splitting the UI and GPU components into separate processes as in ChromeOS. Igalia is focused on changing the Mus demo to support external window mode and getting Chromium to launch in this mode on Linux. Further work is also needed on desktop integration and using Mojo for inter-process communication in Ozone/Wayland.
The document compares the architectures and features of the Firefox and Chromium web browsers. It outlines their reference architectures, functional requirements like user interfaces, media playback, and downloads management. It also discusses their non-functional requirements including security, performance, and extensibility. Finally, it provides a high-level comparison of their architectures and a deeper look at differences in their security models.
These are the slides of my talk WebKit and GStreamer of the GStreamer Conference on 2013, cohosted with LinuxCon.
The HTML5 version with its effects can be found at http://people.igalia.com/xrcalvar/talks/20131022-GstConf-WebKit
This document discusses the Android Chromium rendering pipeline. It covers topics like the critical rendering path in browsers, Chromium's multi-process architecture, and differences between Chrome, Chromium WebView, and the Android rendering model. The document also looks at how Chromium uses techniques like GPU acceleration, multi-threading, and layers to improve performance. Finally, it examines the current and future states of the Android WebView.
El documento describe los conceptos y medidas relacionadas con la bioseguridad en el ámbito de la salud. Explica que los equipos de protección personal como guantes, mascarillas y protectores oculares son importantes para proteger al personal de salud de la exposición a riesgos biológicos. También describe los procedimientos de asepsia, antisepsia, limpieza, descontaminación, desinfección y esterilización para eliminar microorganismos. Resalta la importancia del lavado de manos como medida efectiva para reducir las in
Duomo di Milano - Arquitectura Gótica - IV CICLO - Sosa Castillo Carlo André
Trabajo para el curso Historia y Teoría de la Arquitectura II, analizando una obra del estilo arquitectónico gótico, lo que es el Duomo di Milano.
Trabajo realizado por Carlo André Sosa Castillo, estudiante de Arquitectura, IV Ciclo, de la Universidad Alas Peruanas.
Este documento presenta una introducción al derecho civil de los bienes. Define el patrimonio como el conjunto de derechos y obligaciones de una persona, y discute las teorías clásica y moderna sobre el patrimonio. Explica que los derechos patrimoniales son aquellos que tienen un valor económico y pueden recaer sobre cosas o actos de personas (obligaciones). Distingue entre derechos reales, que se ejercen directamente sobre las cosas, y derechos personales, que involucran obligaciones entre personas. Finalmente, clasifica los bienes en corporales
El documento describe la corrupción en México a través de la historia, incluyendo sus definiciones, tipos, causas y consecuencias. Explica que la corrupción ha existido desde la colonización española y que actualmente involucra sobornos, peculados, tráfico de influencias y falta de ética entre servidores públicos. También analiza las causas formales, culturales y materiales de la corrupción, así como los esfuerzos para combatirla y ejemplos recientes de actos corruptos en México.
This document provides an introduction and overview of Node.js and MongoDB. It discusses that Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine that uses an event-driven, non-blocking I/O model. It can be used for real-time applications and is well-suited for I/O-intensive applications. MongoDB is also introduced as a popular JSON-based NoSQL database that can be easily used with Node.js applications. Examples are given for connecting to MongoDB from Node.js code.
This document introduces ReactJS, a JavaScript library for building user interfaces. It discusses key React concepts like the virtual DOM, which is a JavaScript representation of real DOM elements that allows React to efficiently update the real DOM by comparing it to a new virtual DOM. It also covers one-way data binding in React, where data flows from parent to child components through props, while events flow in the opposite direction. Finally, it emphasizes that in React, everything is a component, and components manage their own state and receive immutable props from parent components.
This document provides an overview and explanation of React Hooks. It introduces common Hooks like useState, useEffect, useReducer, and custom hooks. useState is used to add local state to functional components. useEffect is similar to component lifecycle methods and lets you perform side effects. useReducer is an alternative to useState for managing state in a single object. Custom hooks let you extract reusable logic and share it without changing components. The document also includes a FAQ addressing questions about hooks and class components.
React is a JavaScript library for building user interfaces. It was created by Facebook and is best for building dynamic websites like chat applications. React uses a virtual DOM for efficiently updating the view after data changes. Components are the building blocks of React and can contain state and props. The document provides an example of a simple component class and demonstrates how to add state and props. It also includes links to example code and MicroPyramid's social media profiles.
jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...Edureka!
( ** Full Stack Masters Training: https://www.edureka.co/masters-program/full-stack-developer-training ** )
This PPT on jQuery will help you understand the basics of jQuery and you will also be able to create your own program using jQuery by the end of this PPT.
Follow us to never miss an update in the future.
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Node.js is a server-side JavaScript platform built on Google's V8 engine. It is non-blocking and asynchronous, making it suitable for data-intensive real-time applications. The document discusses how to install Node.js and its dependencies on Ubuntu, introduces key Node.js concepts like events and the event loop, and provides examples of popular Node.js packages and use cases.
React is a JavaScript library for building user interfaces. It uses a component-based approach where UI is broken into independent, reusable pieces called components. Components are like functions that return markup describing part of a view. React uses a virtual DOM to efficiently update the real DOM by only making necessary changes. This improves performance by avoiding expensive DOM operations and minimizing DOM access. Components receive data and callbacks through properties and local state is updated using setState(), triggering a re-render of changed parts of the UI.
The document discusses the process of rendering and layout in WebKit. It explains that WebKit parses HTML into a DOM tree and applies CSS styles to create a render tree. It then lays out elements based on their metrics and computed styles to establish positioning. Finally, it paints the render tree onto the screen by traversing it and issuing drawing commands to the underlying graphics system. The document provides details on how style calculations, layout, and painting optimizations work to efficiently display content on the web.
Hooks are functions that allow you to "hook into" React state and lifecycle features from function components. There are three main rules for using hooks: only call them at the top level, only from React functions, and you can call them from custom hooks. Hooks help solve issues with class components by allowing stateful logic to be reused without changing component hierarchy and making complex components easier to understand and test. While hooks provide benefits, there is no need to immediately use them everywhere and classes will continue to be supported.
Routing & Navigating Pages in Angular 2Knoldus Inc.
Routing in Angular allows directing users to different pages/components based on their navigation choices. It defines routes for pages by creating components and linking them in the routes configuration. Components can link to routes using routerLink and navigate between them in code using the Router service. Route guards prevent navigation under certain conditions. Lazy loading allows splitting the app into smaller modules to improve performance. Code is cleaned up by exporting all imports from a single index file.
This document provides an introduction to jQuery, covering its features, comparisons to other frameworks, selectors, and plugins. jQuery is an open-source JavaScript library that simplifies DOM manipulation, event handling, animations, and Ajax interactions. It uses CSS-style selectors to select and manipulate HTML elements. Some key features include DOM element selections, DOM traversal/modification, DOM manipulation based on CSS selectors, events, effects/animations, Ajax, and extensibility through plugins. The document also discusses jQuery versus other frameworks like Dojo and YUI, demonstrates basic selectors and methods, and encourages the use of plugins to add additional functionality.
ReactJS is arguably the most popular Javascript framework around for web development today. With more and more teams exploring and adopting React, here is TechTalks presentation elaborating fundamentals of React, in a code along session
jQuery is a popular JavaScript library that makes HTML document traversal and manipulation, event handling, animation, and Ajax interactions more simple. It works across browsers and allows developers to write less code using its easy-to-use API. The document discusses how jQuery works, including how to launch code on document ready, add and remove HTML classes, and use callbacks and functions when passing arguments to other functions.
Tutorial Videos: https://www.youtube.com/playlist?list=PLD8nQCAhR3tQ7KXnvIk_v_SLK-Fb2y_k_
Day 1 : Introduction to React, Babel and Webpack
Prerequisites of starting the workshop ( Basic understanding of Node & Express )
What is Virtual DOM?
What is React and why should we use it?
Install and set up React:
a-Using create-react-app
b-From scratch using Babel and Webpack. We will use Webpack Dev Server.
Day 2 : React Basic Concepts
Types of Components: Class-based and Functional based Components
Use of JSX
Parent, Child, and Nested Components
Difference between State and Props
Create and Handle Routes
Component Lifecycle Methods
Create a form and handling form inputs
Use of arrow functions and Spread Operator
Day 3: Advanced Concepts in React
Use of Refs
What are Higher Order Components( HOC )?
How to use HOC
Understanding Context in React
The document provides an introduction to ReactJS, including:
- ReactJS is a JavaScript library developed by Facebook for building user interfaces.
- It uses virtual DOM for rendering UI components efficiently. Only updated components are re-rendered.
- Components are the basic building blocks of React apps. They accept input and return React elements to describe what should appear on the screen.
- The main steps to set up a React app are installing React and ReactDOM libraries, adding JSX syntax, and rendering components onto the DOM using ReactDOM.render().
Puppeteer allows controlling headless or headed Chrome over the DevTools Protocol. It provides a high-level API for common tasks like taking screenshots, navigating pages, and interacting with page elements. The Chrome DevTools Protocol exposes APIs that allow tools to instrument, inspect, debug and profile the browser. Puppeteer uses this to provide convenient methods for automating browser actions and interacting with pages. Existing Selenium tests can leverage the DevTools Protocol by connecting to the browser instance controlled by ChromeDriver.
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolutionjuanjosanchezpenas
This document summarizes Juan J. Sánchez's presentation on WebKit and Blink. It discusses:
1) The history and goals of the WebKit project from 2004-2013, including its features, architecture, ports, and licenses.
2) The WebKit community, including types of contributors, tools used, and events held.
3) The creation of Blink in 2013 when Google forked WebKit, the motivations behind it, and its impact on the WebKit community.
4) The current status of WebKit and Blink projects and their future perspectives.
The document discusses the main components of a web browser, including the user interface, browser engine, rendering engine, networking, JavaScript interpreter, UI backend, and data storage. It provides details on how different browsers use different rendering engines, such as Gecko, WebKit, Blink, and Trident. The rendering engine is responsible for parsing HTML and CSS to construct the DOM and render tree before layout, painting and displaying the web page.
Mobile Browser Internal (Blink Rendering Engine)Hyungwook Lee
This document discusses the Blink rendering engine used in Chromium and Chrome. It begins with an overview of web browser basics, including the rendering engine flow, DOM, CSS, parsing, and layout/rendering. It then covers the evolution from KHTML to WebKit to Blink. Key aspects of Blink covered include its multi-process architecture with separate browser and renderer processes, inter-process communication (IPC), multi-process resource loading, and the rendering path including software rendering, hardware acceleration using the GPU process, and threaded compositing.
Hardware Acceleration in WebKit provides concise summaries of key points:
1) WebKit uses various techniques like off-screen buffers, JIT compilation, and graphics acceleration to improve browsing performance. Graphics acceleration reduces CPU usage by offloading tasks like rendering to the GPU.
2) WebKit supports hardware acceleration of video playback and 2D canvas rendering through interfaces to video and graphics hardware. This allows smoother playback and animation.
3) Accelerated compositing in WebKit uses multiple tree structures integrated with the rendering process to take advantage of GPU acceleration for CSS3 effects, transitions, animations, and HTML5 video through interfaces like OpenCL.
Igalia is working on enabling Chromium to run natively on Wayland-based Linux systems by improving the Ozone/Wayland implementation. There are ongoing discussions around implementing external window mode in Ozone to allow Chromium windows to be separate from the host desktop, as well as splitting the UI and GPU components into separate processes as in ChromeOS. Igalia is focused on changing the Mus demo to support external window mode and getting Chromium to launch in this mode on Linux. Further work is also needed on desktop integration and using Mojo for inter-process communication in Ozone/Wayland.
The document compares the architectures and features of the Firefox and Chromium web browsers. It outlines their reference architectures, functional requirements like user interfaces, media playback, and downloads management. It also discusses their non-functional requirements including security, performance, and extensibility. Finally, it provides a high-level comparison of their architectures and a deeper look at differences in their security models.
These are the slides of my talk WebKit and GStreamer of the GStreamer Conference on 2013, cohosted with LinuxCon.
The HTML5 version with its effects can be found at http://people.igalia.com/xrcalvar/talks/20131022-GstConf-WebKit
This document discusses the Android Chromium rendering pipeline. It covers topics like the critical rendering path in browsers, Chromium's multi-process architecture, and differences between Chrome, Chromium WebView, and the Android rendering model. The document also looks at how Chromium uses techniques like GPU acceleration, multi-threading, and layers to improve performance. Finally, it examines the current and future states of the Android WebView.
El documento describe los conceptos y medidas relacionadas con la bioseguridad en el ámbito de la salud. Explica que los equipos de protección personal como guantes, mascarillas y protectores oculares son importantes para proteger al personal de salud de la exposición a riesgos biológicos. También describe los procedimientos de asepsia, antisepsia, limpieza, descontaminación, desinfección y esterilización para eliminar microorganismos. Resalta la importancia del lavado de manos como medida efectiva para reducir las in
Duomo di Milano - Arquitectura Gótica - IV CICLO - Sosa Castillo Carlo AndréCarlo Andre Sosa Castillo
Trabajo para el curso Historia y Teoría de la Arquitectura II, analizando una obra del estilo arquitectónico gótico, lo que es el Duomo di Milano.
Trabajo realizado por Carlo André Sosa Castillo, estudiante de Arquitectura, IV Ciclo, de la Universidad Alas Peruanas.
Derecho civil de los bienes sesiones i, ii, iiiElmer
Este documento presenta una introducción al derecho civil de los bienes. Define el patrimonio como el conjunto de derechos y obligaciones de una persona, y discute las teorías clásica y moderna sobre el patrimonio. Explica que los derechos patrimoniales son aquellos que tienen un valor económico y pueden recaer sobre cosas o actos de personas (obligaciones). Distingue entre derechos reales, que se ejercen directamente sobre las cosas, y derechos personales, que involucran obligaciones entre personas. Finalmente, clasifica los bienes en corporales
El documento describe la corrupción en México a través de la historia, incluyendo sus definiciones, tipos, causas y consecuencias. Explica que la corrupción ha existido desde la colonización española y que actualmente involucra sobornos, peculados, tráfico de influencias y falta de ética entre servidores públicos. También analiza las causas formales, culturales y materiales de la corrupción, así como los esfuerzos para combatirla y ejemplos recientes de actos corruptos en México.
Las mejores recetas de cocina para aprender de forma sencilla y rápida. Trucos, recomendaciones... y multitud de ayuda con este recetario para principiantes del mundo d ela cocina.
El documento habla sobre conceptos básicos relacionados con productos, como su definición, clasificación, posicionamiento, líneas de productos, portafolio de productos, ciclo de vida, desarrollo de nuevos productos, empaques y embalajes. Explica que un producto se define por los beneficios que ofrece, y clasifica productos en duraderos, no duraderos, de conveniencia y especialidad. Además, cubre temas como la gerencia y registro de marcas, etiquetado, y estrategias de empaques y emb
Resumo do livro Apologia de sócrates para os alunos do curso de Direito da Universidade de Mogi das Cruzes, palestra proferida na jornada Jurídica de 12/05/2012
As organizations embrace digital transformation, application quality is gaining greater strategic focus but many are still slow to engage in testing early enough and demonstrate its ROI effectively.
The fifth edition of the World Quality Report reveals the latest trends in Testing and puts forward recommendations on improving Quality Assurance.
The WebKit project (LinuxCon North America 2012)Igalia
By Juan José Sánchez Penas.
WebKit is a popular open source web rendering engine (HTML, JavaScript, CSS) with a generic part (WebCore, JS Engine), and 'ports' for specific platforms which implement bits like rendering, networking or multimedia. The WebKit community is interesting: companies & individuals cooperate successfully to evolve a complex codebase. Given the popularity of HTML5 and web technologies, WebKit is one of the most important open source projects. Our WebKit team at Igalia maintains the WebKitGTK+ port and contributes to WebCore, JSC, V8 & other ports (EFL, Clutter, Qt), being the top committers after Google&Apple. In this talk, we will review the past&present&future of the project, will explain how to interact with it, how to create or maintain ports, and other details very useful for those who in one way or another use or depend on WebKit.
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolutio...Igalia
By Juan José Sánchez Penas.
WebKit is a web rendering engine (HTML, JavaScript, CSS) with a generic part (WebCore, JSEngine), and 'ports' for specific platforms that implement bits like rendering, networking or multimedia. In the WebKit community, companies&individuals cooperate to evolve a complex codebase. Given the popularity of HTML5 and web tech, WebKit is a key open source project. About 10 months ago, Google announced Blink, a fork of WebKit which attracted many former WebKit contributors. Igalia's Browsers team maintains the WebKitGTK+ port and is top contributor to WebCore, JSC, V8, other ports (EFL, Clutter, Qt), and Blink. The talk will review the past/present/future of WebKit/Blink, their dynamics and development process, , the relationship with the Linux ecosystem, and will give information about how to contribute to or use both projects. Not very technical. Valid both for developers & managers.
WebKit and Blink: open development powering the HTML5 revolutionjuanjosanchezpenas
This document provides an overview of the WebKit technology, community, and ongoing work. It discusses WebKit's goals, features, architecture, ports, and the WebKit2 API. It also covers the Blink fork, the WebKit community and contributing process, and provides statistics on codebase size and contributors.
WebKit and Blink: Open Development Powering the HTML5 Revolution (LinuxCon No...Igalia
By Juan José Sánchez Penas.
WebKit is a web rendering engine (HTML, JavaScript, CSS) with a generic part (WebCore, JSEngine), and 'ports' for specific platforms that implement bits like rendering, networking or multimedia. In the WebKit community, companies&individuals cooperate to evolve a complex codebase. Given the popularity of HTML5 and web tech, WebKit is a key open source project. Recently, Google announced Blink, a fork of WebKit, with consequences for the project still difficult to predict. Igalia's Browsers team maintains the WebKitGTK+ port and is top contributor to WebCore, JSC, V8, other ports (EFL, Clutter, Qt), and Blink. The talk will review the past/present/future of WebKit/Blink, their dynamics and development process, the relationship with the Linux ecosystem, and will give information about how to contribute to or use both projects.
Add the power of the Web to your embedded devices with WPE WebKitIgalia
The Web engine is the most important component of a Web Browser: it makes it possible to fetch and interpret web content, allowing users to interact with it. WebKit, the Open Source Web engine used in Web browsers like Safari, provides an architecture particularly well-designed for embedded platforms, making it popular not just for Apple devices, but for all sorts of Linux-based environments too (e.g. set-top-boxes, smart home appliances..). However, a Web engine is a complex piece of software and often not optimized for low-power computers.
This is where WPE, a Linux-based Open Source “port” of WebKit for embedded devices, comes in. Its low memory footprint and focus on simplicity, flexibility, and performance allows for the kind of customization needed to run on bespoke hardware and integrate with a wide variety of requirements. WPE is also developed upstream as part of the WebKit project and regularly published every 6 months via stable releases, guaranteeing that it’s up-to-date with the latest developments in the WebKit community.
In this talk, we will explore WPE in detail, see how the project has evolved, and look at where it’s heading next, highlighting some of its most popular use cases and some experiments that open up brand-new possibilities for this port of WebKit.
(c) Embedded Recipes 2023
5th Edition
September 2023, 28 to 29
Paris - France
https://embedded-recipes.org/2023/
https://www.youtube.com/watch?v=rdiETUGD6dg
Building a Browser for Automotive: Alternatives, Challenges and Recommendationsjuanjosanchezpenas
The document discusses alternatives for building a browser for automotive applications, including licensing a proprietary solution, deriving from open source projects like WebKit or Chromium. It provides a historical overview of WebKit and the creation of Chromium, examining their architectures and communities. Key considerations for selecting between WebKit and Chromium-based options include flexibility, portability, innovation level, and community support. Specific options discussed are WebKitGTK+, WebKit for Wayland, Chromium directly, Crosswalk, QtWebEngine, and Chromium Embedded Framework. The conclusion is that the best choice depends on the project's specific goals and requirements.
Building a browser for automotive. alternatives, challenges and recommendatio...Igalia
By Juan José Sánchez Penas.
Automotive web browsers have specific needs, compared to other platforms such as mobile, STB/TV or desktop. When building your own web browser (or by extension your web platform middleware) many different aspects need to be taken into account in order to define the right technologies to be used, the architecture, and a good strategy regarding the collaboration with open source projects and communities. In this talk we will review all those aspects, focusing specifically in WebKit and Chromium/Blink, the two main technologies that are being used to build and derive browsers and web platforms. We will review the alternatives, describe the main challenges and risks, and give wide set of recommendations based on years of experience developing and helping companies and associations to develop this kind of projects.
This document discusses adapting the BoofCV computer vision library for use in GWT applications in the browser. It describes BoofCV and its dependencies like EJML, DDogLeg, and GeoRegression. It details the process of creating GWT adapters for these libraries by adding .gwt.xml files and supersourcing classes to modify them for GWT. Examples are given of using the adapted libraries for interest point detection and association in browser-based applications.
This document discusses adapting the BoofCV computer vision library for use in GWT applications in the browser. It describes BoofCV and its dependencies like EJML, DDogLeg, and GeoRegression. It details the process of creating GWT adapters for these libraries by adding .gwt.xml files and using super-sourcing to modify classes as needed to work in GWT. Examples are given of using the adapted libraries for interest point detection and association in browser-based applications.
By Martin Robinson.
After two years of work, WebKit2 has arrived to the GNOME platform, bringing security, stability, and performance. This talk will outline the new design and dive briefly into some of the gory technical details. Also, included will be a mountain of practical advice for application developers about the transition, such as whether or not applications should be rewritten for WebKit2 and how best to take advantage of the new multi-process model.
Browsers and Web Runtimes for Automotive: Alternatives, Challenges, and Curre...Igalia
By Juan José Sánchez Penas.
Automotive web browsers and web application runtimes have specific needs, compared to platforms such as mobile, STB/TV, desktop and other embedded devices.
When building your own web middleware for an automotive platform, many different aspects need to be considered in order to define the right technologies, the architecture to be used, and a good strategy regarding the collaboration with open source projects and communities.
In this talk we will discuss those aspects, focusing specifically on WebKit and Chromium, the two main technologies that are being used to build and derive browsers and web runtimes.
We will review the alternatives and their status, describe the challenges, explain the functionality and performance, and show demos based on our work at Igalia developing and adapting browsers for automotive, in the context of AGL
(Automotive Grade Linux) and GENIVI.
(c) Automotive Linux Summit 2018
June 20 - 22, 2018
Tokyo Conference Center Ariake (Japan)
https://events.linuxfoundation.org/events/automotive-linux-summit-2018/
Next Generation Hybrid Applications with Qt - presentation for SEE 2009Nokia
Presentation for http://www.see2009.org/, held in 26.10.2009.
Shows how web developers can utilize their web development skills in native applications with Qt.
The Qt WebKit Integration provides a powerful framework to seamlessly integrate web technologies into future Maemo applications, where web content can interact with Qt components. This presentation introduces the QtWebKit APIs, the underlying engine and new features coming in future releases.
Presentation by Kenneth Christiansen held during the Maemo Summit 2009 in Amsterdam
Hybrid Apps (Native + Web) using WebKitAriya Hidayat
In term of innovations and mobile availability, WebKit is known to be the premier web rendering engine with the leading support for web standards such as HTML5, CSS3, and SVG. On MeeGo platform, WebKit can be leveraged easily via the use QtWebKit module which combines powerful WebKit features with the ease of use of Qt. The ground of developing applications using native technologies has been much explored, however there are still confusions, myths and misunderstanding as to what can be achieved with web technologies and hybrid native-web approach. This talk will highlight several tools and best practices in developing and testing good looking, feature-rich, and hardware-accelerated applications using web technologies targeting MeeGo platform in particular.
Hybrid Apps (Native + Web) using WebKitAriya Hidayat
In term of innovations and mobile availability, WebKit is known to be the premier web rendering engine with the leading support for web standards such as HTML5, CSS3, and SVG. On MeeGo platform, WebKit can be leveraged easily via the use QtWebKit module which combines powerful WebKit features with the ease of use of Qt. The ground of developing applications using native technologies has been much explored, however there are still confusions, myths and misunderstanding as to what can be achieved with web technologies and hybrid native-web approach. This talk will highlight several tools and best practices in developing and testing good looking, feature-rich, and hardware-accelerated applications using web technologies targeting MeeGo platform in particular.
WebRTC, and most of HTML5 tecnologies as File API, WebGL, WebWorkers, ...,answer to a common problem, i.e. to make 'in browser' apps able to do operations impossible before, as access to the video and audio stream by a javascript api.
The document discusses Google Web Toolkit (GWT), a development toolkit that allows web applications to be developed using Java and compiled into JavaScript. It lists several large projects built with GWT, including Google Wave and Odnoklassniki. The key features of GWT discussed are cross-browser compatibility, object-oriented programming, widgets and declarative UI, code optimization, and integration with JavaScript via JSNI. Deferred binding is described as a mechanism that allows optimizing which code is sent to the client based on factors like the user's browser or locale.
The document discusses Google Web Toolkit (GWT), a development toolkit for building and optimizing complex browser-based applications. It provides examples of large GWT-based projects, key GWT features, and concepts like UiBinder, deferred binding, client bundles, and code splitting that improve performance. UiBinder allows separating a web application's user interface from its logic through HTML/CSS markup with GWT widgets.
Blockchain technology is transforming industries and reshaping the way we conduct business, manage data, and secure transactions. Whether you're new to blockchain or looking to deepen your knowledge, our guidebook, "Blockchain for Dummies", is your ultimate resource.
YOUR RELIABLE WEB DESIGN & DEVELOPMENT TEAM — FOR LASTING SUCCESS
WPRiders is a web development company specialized in WordPress and WooCommerce websites and plugins for customers around the world. The company is headquartered in Bucharest, Romania, but our team members are located all over the world. Our customers are primarily from the US and Western Europe, but we have clients from Australia, Canada and other areas as well.
Some facts about WPRiders and why we are one of the best firms around:
More than 700 five-star reviews! You can check them here.
1500 WordPress projects delivered.
We respond 80% faster than other firms! Data provided by Freshdesk.
We’ve been in business since 2015.
We are located in 7 countries and have 22 team members.
With so many projects delivered, our team knows what works and what doesn’t when it comes to WordPress and WooCommerce.
Our team members are:
- highly experienced developers (employees & contractors with 5 -10+ years of experience),
- great designers with an eye for UX/UI with 10+ years of experience
- project managers with development background who speak both tech and non-tech
- QA specialists
- Conversion Rate Optimisation - CRO experts
They are all working together to provide you with the best possible service. We are passionate about WordPress, and we love creating custom solutions that help our clients achieve their goals.
At WPRiders, we are committed to building long-term relationships with our clients. We believe in accountability, in doing the right thing, as well as in transparency and open communication. You can read more about WPRiders on the About us page.
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionBert Blevins
Cybersecurity is a major concern in today's connected digital world. Threats to organizations are constantly evolving and have the potential to compromise sensitive information, disrupt operations, and lead to significant financial losses. Traditional cybersecurity techniques often fall short against modern attackers. Therefore, advanced techniques for cyber security analysis and anomaly detection are essential for protecting digital assets. This blog explores these cutting-edge methods, providing a comprehensive overview of their application and importance.
Quantum Communications Q&A with Gemini LLM. These are based on Shannon's Noisy channel Theorem and offers how the classical theory applies to the quantum world.
Choose our Linux Web Hosting for a seamless and successful online presencerajancomputerfbd
Our Linux Web Hosting plans offer unbeatable performance, security, and scalability, ensuring your website runs smoothly and efficiently.
Visit- https://onliveserver.com/linux-web-hosting/
7 Most Powerful Solar Storms in the History of Earth.pdfEnterprise Wired
Solar Storms (Geo Magnetic Storms) are the motion of accelerated charged particles in the solar environment with high velocities due to the coronal mass ejection (CME).
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Erasmo Purificato
Slide of the tutorial entitled "Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Emerging Trends" held at UMAP'24: 32nd ACM Conference on User Modeling, Adaptation and Personalization (July 1, 2024 | Cagliari, Italy)
An invited talk given by Mark Billinghurst on Research Directions for Cross Reality Interfaces. This was given on July 2nd 2024 as part of the 2024 Summer School on Cross Reality in Hagenberg, Austria (July 1st - 7th)
Comparison Table of DiskWarrior Alternatives.pdfAndrey Yasko
To help you choose the best DiskWarrior alternative, we've compiled a comparison table summarizing the features, pros, cons, and pricing of six alternatives.
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Bert Blevins
Today’s digitally connected world presents a wide range of security challenges for enterprises. Insider security threats are particularly noteworthy because they have the potential to cause significant harm. Unlike external threats, insider risks originate from within the company, making them more subtle and challenging to identify. This blog aims to provide a comprehensive understanding of insider security threats, including their types, examples, effects, and mitigation techniques.
The DealBook is our annual overview of the Ukrainian tech investment industry. This edition comprehensively covers the full year 2023 and the first deals of 2024.
How Social Media Hackers Help You to See Your Wife's Message.pdfHackersList
In the modern digital era, social media platforms have become integral to our daily lives. These platforms, including Facebook, Instagram, WhatsApp, and Snapchat, offer countless ways to connect, share, and communicate.
Support en anglais diffusé lors de l'événement 100% IA organisé dans les locaux parisiens d'Iguane Solutions, le mardi 2 juillet 2024 :
- Présentation de notre plateforme IA plug and play : ses fonctionnalités avancées, telles que son interface utilisateur intuitive, son copilot puissant et des outils de monitoring performants.
- REX client : Cyril Janssens, CTO d’ easybourse, partage son expérience d’utilisation de notre plateforme IA plug & play.
Best Practices for Effectively Running dbt in Airflow.pdfTatiana Al-Chueyr
As a popular open-source library for analytics engineering, dbt is often used in combination with Airflow. Orchestrating and executing dbt models as DAGs ensures an additional layer of control over tasks, observability, and provides a reliable, scalable environment to run dbt models.
This webinar will cover a step-by-step guide to Cosmos, an open source package from Astronomer that helps you easily run your dbt Core projects as Airflow DAGs and Task Groups, all with just a few lines of code. We’ll walk through:
- Standard ways of running dbt (and when to utilize other methods)
- How Cosmos can be used to run and visualize your dbt projects in Airflow
- Common challenges and how to address them, including performance, dependency conflicts, and more
- How running dbt projects in Airflow helps with cost optimization
Webinar given on 9 July 2024
UiPath Community Day Kraków: Devs4Devs ConferenceUiPathCommunity
We are honored to launch and host this event for our UiPath Polish Community, with the help of our partners - Proservartner!
We certainly hope we have managed to spike your interest in the subjects to be presented and the incredible networking opportunities at hand, too!
Check out our proposed agenda below 👇👇
08:30 ☕ Welcome coffee (30')
09:00 Opening note/ Intro to UiPath Community (10')
Cristina Vidu, Global Manager, Marketing Community @UiPath
Dawid Kot, Digital Transformation Lead @Proservartner
09:10 Cloud migration - Proservartner & DOVISTA case study (30')
Marcin Drozdowski, Automation CoE Manager @DOVISTA
Pawel Kamiński, RPA developer @DOVISTA
Mikolaj Zielinski, UiPath MVP, Senior Solutions Engineer @Proservartner
09:40 From bottlenecks to breakthroughs: Citizen Development in action (25')
Pawel Poplawski, Director, Improvement and Automation @McCormick & Company
Michał Cieślak, Senior Manager, Automation Programs @McCormick & Company
10:05 Next-level bots: API integration in UiPath Studio (30')
Mikolaj Zielinski, UiPath MVP, Senior Solutions Engineer @Proservartner
10:35 ☕ Coffee Break (15')
10:50 Document Understanding with my RPA Companion (45')
Ewa Gruszka, Enterprise Sales Specialist, AI & ML @UiPath
11:35 Power up your Robots: GenAI and GPT in REFramework (45')
Krzysztof Karaszewski, Global RPA Product Manager
12:20 🍕 Lunch Break (1hr)
13:20 From Concept to Quality: UiPath Test Suite for AI-powered Knowledge Bots (30')
Kamil Miśko, UiPath MVP, Senior RPA Developer @Zurich Insurance
13:50 Communications Mining - focus on AI capabilities (30')
Thomasz Wierzbicki, Business Analyst @Office Samurai
14:20 Polish MVP panel: Insights on MVP award achievements and career profiling
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfNeo4j
Presented at Gartner Data & Analytics, London Maty 2024. BT Group has used the Neo4j Graph Database to enable impressive digital transformation programs over the last 6 years. By re-imagining their operational support systems to adopt self-serve and data lead principles they have substantially reduced the number of applications and complexity of their operations. The result has been a substantial reduction in risk and costs while improving time to value, innovation, and process automation. Join this session to hear their story, the lessons they learned along the way and how their future innovation plans include the exploration of uses of EKG + Generative AI.
2. Myself, Igalia and WebKit
Co-founder of the company, member of the
WebKit/Browsers team
Igalia is an open source consultancy founded in 2001
Igalia is the main contributor to upstream WebKit after
Google and Apple
We work with some of the main IT industry actors
integrating different WebKit solutions in their frameworks
The WebKit project Juan J. Sánchez
3. Outline
The technology: goals, features, architecture, code
structure, ports, webkit2, ongoing work
The community: contributors, committers, reviewers,
tools, events
How to contribute: bugfixing, features, new ports
The WebKit project Juan J. Sánchez
5. The WebKit project
Web browser engine (HTML, JavaScript, CSS...)
The engine is the product
Started as a fork of KHTML and KJS in 2001
Open Source since 2005
Among other things, it’s useful for:
Web browsers
Using web technologies for UI development
The WebKit project Juan J. Sánchez
6. Goals of the project
Web Content Engine: HTML, CSS, JavaScript, DOM
Open Source: BSD-style and LGPL licenses
Compatibility: regression testing
Standards Compliance
Stability
Performance
Security
Portability: desktop, mobile, embedded...
Usability
Hackability
The WebKit project Juan J. Sánchez
7. Goals of the project
NON-goals:
“It’s an engine, not a browser”
“It’s an engineering project not a science project”
“It’s not a bundle of maximally general and reusable code”
“It’s not the solution to every problem”
http://www.webkit.org/projects/goals.html
The WebKit project Juan J. Sánchez
8. WebKit features
HTML and XML support
JavaScript support (ECMAScript 5.1, ES6 in progress)
CSS 2.1, CSS 3 support. Working drafts also
SVG support
Support for Plugins (NPAPI, WebKit Plugins)
HTML5 support: multimedia, 3D graphics, advanced CSS
animations and transformations, drag’n’drop, offline &
local storage, connectivity...
Accessibility support
Q&A infrastructure: review process, continuous
integration, 30.000 regression tests, API tests...
Passing ACID3 with 100/100 tests since March 2008
The WebKit project Juan J. Sánchez
9. WebKit Architecture
From a simplified point of view, WebKit is structured this way:
WebKit: thin layer to link against
from the applications
WebCore: rendering, layout,
network access, multimedia,
accessibility support...
JS Engine: the JavaScript engine.
JavaScriptCore by default, but can
be replaced (e.g. V8 in Chromium)
platform: platform-specific hooks to
implement generic algorithms
The WebKit project Juan J. Sánchez
10. What is a WebKit port?
The WebKit project Juan J. Sánchez
11. How many WebKit ports are there?
WebKit is currently available for different platforms:
GTK+ based platforms (GNOME)
Qt based platforms (KDE, Meego)
Mac OS X, iOS
Google Chromium / Chrome
Enlightenment Foundation Libraries (EFL)
Symbian devices (S60)
Adobe Integrated Runtime (Adobe AIR)
BlackBerry
WebOS
Brew MP
Win32 (Windows CE)
wxWidgets
The WebKit project Juan J. Sánchez
12. Some WebKit based browsers
Amazon Kindle PS3 web browser
Arora RockMelt
BOLT browser Safari
Epiphany browser SRWare Iron
Google Chrome Shiira
iCab (version >= 4) Sputnik for MorphOS
Iris Browser Stainless
Konqueror Steel for Android
Midori TeaShark
Nintendo 3DS Uzbl
OWB Web Browser for S60 (Nokia)
OmniWeb WebOS Browser
The WebKit project Juan J. Sánchez
15. How do we use a WebKit port?
The WebView widget:
A platform-specific widget that renders web content.
It’s the main component and it’s useful for:
Loading URIs or data buffers pointing to HTML content
Go fullscreen, text/text+image zooming...
Navigate back and forward through history...
Events handling:
Allows embedders to get notified when something
important happens or when some input is needed.
Some examples of these events:
Getting notified when a load finished or failed
Asking permission for navigating to an URI
Requesting authorization for something..
The WebKit project Juan J. Sánchez
16. A minibrowser written in Python
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import gtk
import webkit
def entry_activated_cb(entry, embed):
embed.load_uri(entry.get_text())
# Widgets and signals
window = gtk.Window()
window.set_default_size(800, 600)
window.set_title("Mini browser written in Python")
embed = webkit.WebView(); # WebKit embed
entry = gtk.Entry()
entry.connect(’activate’, entry_activated_cb, embed)
scroller = gtk.ScrolledWindow()
scroller.add(embed)
# Pack everything up and show
vbox = gtk.VBox(False, 5)
vbox.pack_start(entry, False, False)
vbox.pack_start(scroller)
window.add(vbox)
window.show_all()
# Load a default URI and run
embed.load_uri("http://www.webkit.org")
gtk.main()
The WebKit project Juan J. Sánchez
20. What is WebKit2?
New API layer designed to support a split process model.
Different to Chromium’s multi-process implementation
It’s bundled in the framework (reusable)
Different processes take care of different tasks:
UI process: the WebView widget, application UI
Web process: loading, parsing, rendering, layout...
Plugin process: each plugin type in a process
It comes with Inter-Process Communication (IPC)
mechanisms to communicate those processes bundled-in
http://trac.webkit.org/wiki/WebKit2
The WebKit project Juan J. Sánchez
23. WebKit2: current status
Apple and Qt already released WebKit2 browsers
WebKit2 stable API for the GTK+ port released, browser
released soon
Cross-platform and non-blocking C API available
Most challenges of the split process model solved
Tests running, need to deploy more test bots
Still not considered “production quality”. Getting there
The WebKit project Juan J. Sánchez
24. The Source Code in numbers
According to Ohloh on 2012 April 29th, lines of code per
language, without considering blank lines nor comments:
Language LoC %
HTML 1404469 33.79 %
C++ 1268231 30.51 %
JavaScript 692274 16.65 %
XML 254224 6.12 %
Objective-C 101658 2.45 %
PHP 97114 2.34 %
Python 82366 1.98 %
Perl 75677 1.82 %
CSS 73587 1.77 %
C 68469 1.65 %
Other (19) 38820 0.93 %
Total 4156889
https://www.ohloh.net/p/WebKit/analyses
Just considering C++, Objective-C and C files,
we have almost 1.5M LoC!
The WebKit project Juan J. Sánchez
25. The Source Code in numbers
According to Ohloh on 2012 April 29th, files per license:
License Files %
BSD License 4427 51.09 %
GNU LGPL 3568 41.18 %
MPL 607 7.01 %
Other (9) 63 0.73 %
Total 8665
https://www.ohloh.net/p/WebKit/analyses
New WebKit code will always be under the terms of either the
LGPL 2.1+ or the BSD license. Never GPL or LGPL 3.
The WebKit project Juan J. Sánchez
26. High Level source code overview
Source/: the code needed to build WebKit. That is,
WebCore, JavaScriptCore, WebKit and WebKit2
LayoutTests/: layout tests reside here (More than 27000!).
They test the correctness of WebKit features
ManualTests/: specific cases not covered by automatic
testing
PerformanceTests/: measure run-time performance and
memory usage
See webkit-perf.appspot.com for results
Tools/: tools and utilities for WebKit development.
Small test applications, tools for testing, helper scripts...
Websites/: code and pages for WebKit related sites
The WebKit project Juan J. Sánchez
27. Tracking ongoing work in WebKit
Webkit is a big beast and a lot of organizations with
different agendas are working in different parts:
Implementing new standards (like the CSS shaders from
Adobe, or CSS3 GCPM from Apple)
Improvements in architecture, performance and internal
code (WebKit2)
On top of this there is the maintenance work (testing,
continuous integration, bugfixing)
Peter Beverloo (Google) reports are usually a good way to
follow what has happened lately: http://peter.sh/
The WebKit project Juan J. Sánchez
29. A bit of history
Source: http://ariya.ofilabs.com/2011/11/
one-hundred-thousand-and-counting.html
The WebKit project Juan J. Sánchez
30. The WebKit Project in numbers
Commits per year (up to 2012 April 24th)
The WebKit project Juan J. Sánchez
31. The WebKit Project in numbers
Commits per month (2011):
The WebKit project Juan J. Sánchez
32. The WebKit Project in numbers
Commits per affiliations (2011)
The WebKit project Juan J. Sánchez
33. WebKit Contributors
As of 2012 April 24th, we have in WebKit:
Contributors: >370 people
Committers: 212 people
Reviewers: 110 people
The WebKit project Juan J. Sánchez
34. Committers and Reviewers
WebKit Committer
A WebKit Committer should be a person we can trust to follow and
understand the project policies about checkins and other matters.
Has commit rights to the public SVN repository.
WebKit Reviewer
A WebKit Reviewer should be a person who has shown particularly
good judgment, understanding of project policies, collaboration skills,
and understanding of the code.
A WebKit Committer who can review other’s patches.
The WebKit project Juan J. Sánchez
35. Copyright for contributions
There is no copyright transfer for the contributions
Committers sign some papers where they commit to good
behaviour
The WebKit project Juan J. Sánchez
36. Releases
There are no releases of WebKit itself
Each port manages the release cycle, typically aligned with
the target platform schedule
The WebKit project Juan J. Sánchez
37. Coordination and communication tools
Website: http://www.webkit.org/
Port specific Websites (e.g. http://webkitgtk.org/)
Wiki: http://trac.webkit.org/wiki
Blogs: http://planet.webkit.org/
Source Code:
SVN: http://svn.webkit.org/repository/webkit
Git mirror: git://git.webkit.org/WebKit.git
Bugzilla: https://bugs.webkit.org/
Buildbots: http://build.webkit.org/
Mailing lists: http://lists.webkit.org/mailman/listinfo.cgi
IRC (irc.freenode.net): #webkit and #webkitgtk+
The WebKit project Juan J. Sánchez
38. The WebKit Contributors Meeting
Meeting for contributors to the WebKit project
Organized in an “unconference”-like format
Extremely useful to advance on some topics:
Implementation of new APIs, WebKit2, accelerated
compositing, helper tools, QA infrastructure...
Yearly held in Cupertino, California. Hosted by Apple
The WebKit project Juan J. Sánchez
40. Types of contributions
Bugfixing and new features in:
An existent port
The core components: webcore and JSC/V8
Creation and maintenance of a new port
The WebKit project Juan J. Sánchez
41. Guidelines for contributing patches to WebKit
1 Get and build the code from the SVN repository
2 Choose or create a bug report to work on
3 Code your changes and make sure you include new
regression or unit tests if needed
4 Create a patch for your changes and submit it asking for
review over it to appropriate reviewers
5 Update and change your patch as many times as needed
6 Once approved, land your patch or ask a
committer/reviewer to do it
7 Watch for any regressions it might have caused
The WebKit project Juan J. Sánchez
42. Creating a port: what needs to be done
High level API (WebKit1 and WebKit2)
Low level backend specific implementation
Web Template Framework (WTF): memory management,
threading, data structures (vectors, hash tables, bloom
filters, ...) numerical support, etc.
JSC vs V8
Networking: HTTP, DNS, cookies, etc.
Graphics: 2D/3D rendering, compositing, theming, fonts
Multimedia: media player for audio and video tags
DOM bindings
Accessibility
Smaller tasks: clipboard, popup and context menus,
cursors, etc.
Other things: favicons, plugins, downloads, geolocation,
settings, navigation policies, etc.
The WebKit project Juan J. Sánchez
43. Creating a port: the social side
Difficult without full-time reviewers
Reuse from other ports as much as possible
Try to work upstream from the very beginning
The risk of forking is big, the project moves fast
Focus on testing and continuous integration
Port-specific events and communication tools
The WebKit project Juan J. Sánchez
44. Conclusions
WebKit: an Open Source web engine powering lots of
applications (not only browsers!) out there
The only true Open Source alternative for embedders
Clearly defined and modular architecture. Port friendly
Complex and fast moving project
Developed by a community of organizations and
individuals with different interests, collaborating together
Lots of contributors. Appropriate policies in place to
handle permissions and responsibilities in the project
The WebKit project Juan J. Sánchez
45. Thank you!
Juan J. Sánchez
jjsanchez@igalia.com
The WebKit project Juan J. Sánchez