SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
Contributions to an open source project:
Igalia and the Chromium project
Mario Sánchez Prada
<mario@igalia.com>
ICSE 2021 - Spanish Industry Case Studies
Wednesday, 26th of May 2021
Contributions to an open source project: Igalia and the Chromium project
Mario Sánchez Prada - Igalia
About me
● CS Engineer, partner of Igalia and member of its Chromium team
● Involvement as part of different Open Source communities:
○ Chromium: Servicification, Onion Soup
○ WebKit: WebKitGTK, Linux Accessibility
○ GNOME: Contributor, GNOME foundation member
● Other work done in the past:
○ Development of Linux-based OS’s (i.e. Endless OS, Litl OS)
○ Samsung SmartTV platform (WebKit & Chromium)
○ Nokia’s Maemo: APT & Hildon Application Manager
Contributions to an open source project: Igalia and the Chromium project
Mario Sánchez Prada - Igalia
About Igalia
● Highly specialized Open Source consultancy
● Worker-owned, employee-run, flat structure
● Headquartered in A Coruña, Galicia (Spain)
● 100+ people working from all over the world
distributed among 25 countries and 11 timezones
● Browsers and Web engines related teams:
Chromium, WebKit, Web Platform, Compilers,
Graphics, Multimedia, Accessibility
Contributions to an open source project: Igalia and the Chromium project
Mario Sánchez Prada - Igalia
What is Chromium?
Contributions to an open source project: Igalia and the Chromium project
Mario Sánchez Prada - Igalia
What is Chromium?
● Standalone Free & Open Source Web browser
● Mostly licensed under the terms of the BSD License
○ Some specific bits under MIT, LGPL, GPL and others
● Available for different platforms, desktop & mobile:
○ Windows, Mac OS, Linux, iOS, Android (since 4.4 KitKat!)
● Multi-process and modular architecture:
○ Browser process + other processes (e.g. renderers, GPU, network…)
○ Content module for embedding: //content/browser & //content/renderer
● Used as the base of several browsers out there:
○ Chrome, Samsung Browser, Microsoft Edge, Opera, UC Browser, Brave...
What is Chromium?
Market share of over
70% as of April 2021
(statcounter.com)
What is Chromium?
Very fast growth over
the past 10 years
(statcounter.com)
Contributions to an open source project: Igalia and the Chromium project
Mario Sánchez Prada - Igalia
Chromium vs Chrome
● Chromium and Chrome are both free as in “free beer”
● Only Chromium’s is fully Open Source (you can build & modify it)
● Chrome based on Chromium, with closed parts on top:
○ Automatic updater, API keys for Google Services (e.g. Speech API), support for popular
non-free multimedia codecs (i.e. H.264, AAC), Widevine support (e.g. Netflix)...
● Chrome can neither be built, nor be freely re-distributed either
● Different branding too (e.g. different name, different icon...)
Chromium Chrome
Chromium vs Chrome
Chromium vs Chrome
Contributions to an open source project: Igalia and the Chromium project
Mario Sánchez Prada - Igalia
Chromium, Blink & V8
● Chromium is the whole browser, but doesn’t do all on its own
Source code: https://chromium.googlesource.com/chromium/src.git
● Blink is the web engine Chromium uses to render web content
○ Blink arranges HTML/CSS content to show up on screen, responds to user
interactions, plays media content, implements JavaScript APIs…
Source code: third_party/blink/ directory in Chromium’s repository
● V8 is the JavaScript engine that Chromium relies on:
○ Responsible for executing JavaScript code in the browser
○ Can also be run independently (e.g. Node.JS)
Source code: https://chromium.googlesource.com/v8/v8.git
Chromium, Blink & V8
Chromium, Blink & V8
Chromium
V8 (e.g.)
Blink
Contributions to an open source project: Igalia and the Chromium project
Mario Sánchez Prada - Igalia
What is Chromium OS?
● A full Operating System built on top of Chromium
● It boots the machine and implements a modern desktop environment:
○ Session management, hardware detection, full- screen/windowed applications,
maximize/minimize windows, install/uninstall/update applications, battery
management, suspension & resume…
● Like Chromium vs Chrome, only Chromium OS is fully free (build it, modify it)
● Mostly popular via “Chrome OS machines” (a.k.a. Chromebooks)
What is Chromium OS?
Image Attribution: ChromiumOS-desk.png by TheDevDude95, licensed under the terms of the Creative Commons Attribution-Share Alike 4.0 International license
Contributions to an open source project: Igalia and the Chromium project
Mario Sánchez Prada - Igalia
What have we contributed to the
Chromium project recently?
Contributions to an open source project: Igalia and the Chromium project
Mario Sánchez Prada - Igalia
Code Health: Onion Soup project
● Started this collaboration in February 2019
● Modules migration from //content/renderer to Blink:
○ //c/r/media: Finished webrtc, audio, peerconnection
○ //c/r/java: Java/JS bridge mojoification
○ //c/r/a11y: Removed content::AXContent* classes
● Started moving //media/blink to Blink (WIP)
This process helped remove 235+ definitions (i.e. classes, enums,
methods...) from Blink’s public API (see tracking spreadsheet)
Contributions to an open source project: Igalia and the Chromium project
Mario Sánchez Prada - Igalia
Code Health: Legacy IPC migrations
● Progressed with the migration of legacy IPC to Mojo:
○ Migrated 342/495 messages since we started (08/2019)
○ Main focus on //content so far:
■ Migrated 293/296 messages
○ Migrations outside of //content:
■ Finished printing and Android WebView related IPCs
■ Mostly focused on //extensions right now
■ Migrated 49/199 messages
Check out Gyuyoung Kim’s lightning talk at BlinkOn 14
Contributions to an open source project: Igalia and the Chromium project
Mario Sánchez Prada - Igalia
CSS
● ::marker pseudo-element
○ Implemented and shipped
● CSS flow-relative shorthand and offset properties
○ Implemented and shipped
● CSS Custom Properties:
○ Improved performance resolving inheritance (bug)
● New TextBreakIterator's default behavior
○ Changed default behavior to break after space (bug)
● CSS Text and line-breaking
○ Improved trailing space handling and bidirectional text
○ Added support for trailing ideographic space
Contributions to an open source project: Igalia and the Chromium project
Mario Sánchez Prada - Igalia
CSS
● CSS Grid:
○ Fixed bugs, interop and performance issues
● CSS Scrollbars
○ Made scrollbar-gutter available behind the "experimental" flag
○ Started implementing scrollbar-width (testing)
● :focus-visible pseudo-class
○ Implemented changes to include it in the default UA stylesheet
● :has pseudo-class
○ Implemented and now checking its feasibility (i.e. Intent to Prototype)
● :dir pseudo-class
○ Implemented behind a runtime flag, pending to ship (experimental)
Contributions to an open source project: Igalia and the Chromium project
Mario Sánchez Prada - Igalia
Accessibility
● Enabled Linux accessibility mode on the fly (no restart required)
● Added support for more event types in Linux:
alert, text attribute change, table sort...
● Improved accessibility debug tools:
○ Ported and enhanced accessibility debug tools to Mac to support
complex specifications (e.g. DumpAcessibilityTree)
○ Added support for more complex specifications and scripting
○ Extended cross-platform support and enabled a11y tools to dump
trees & events in other web engines i.e. WebKit, Firefox (blog post)
○ Added new selectors and done some code refactoring
Contributions to an open source project: Igalia and the Chromium project
Mario Sánchez Prada - Igalia
Accessibility
● Chromium UI
○ Reported and fixed bugs across all desktop platforms (blog post)
○ Enhanced chrome://history page
○ Enhanced menu item support on Mac
● Caret browsing navigation:
○ Improved support for the shadow DOM and flat-tree navigation
● Accessible name calculation
○ Imported tens of new tests
● General maintenance
○ Bug fixing, performance improvements, tests...
Contributions to an open source project: Igalia and the Chromium project
Mario Sánchez Prada - Igalia
Chromium on Wayland
● Working to natively support Chromium on Wayland since 2016
○ Ozone/Wayland platform is fully upstream since 2018
● Work on the X11 backend started in the middle of 2019
○ Refactored components that were desktop/X11-only to share their
implementation with the Ozone/X11 platform
● Ozone built by default and part of official Chrome releases
○ Experimental & disabled by default, can be enabled in runtime:
--enable-features=UseOzonePlatform --ozone-platform=x11|wayland
● Finch trial for Ozone/X11 launched on April 29th 2021
○ Parity with non-Ozone/X11 now!
Contributions to an open source project: Igalia and the Chromium project
Mario Sánchez Prada - Igalia
Chromium on Wayland
● Developed extension for Wayland DnD protocol (still WIP)
○ Needed to overcome limitations blocking development of tab dragging
feature in Chromium running on Wayland
○ Implemented in Exo (Wayland compositor for ChromeOS)
○ Proposal for standardization upstream in wayland-protocols
● Next steps:
○ Have a successful finch trial for Ozone/Wayland
○ Make Ozone default on Linux (at some point in H2/2021)
Check out Alexander Dunaev’s talk at the Web Engines Hackfest 2021
Contributions to an open source project: Igalia and the Chromium project
Mario Sánchez Prada - Igalia
MathML
● Upstreamed a lot from our 2019 downstream branch:
i.e. basic setup & layout, operator dictionary, new CSS properties
● Started to upstream support for stretchy operators
See tracking bug and the list of merged CLs
Contributions to an open source project: Igalia and the Chromium project
Mario Sánchez Prada - Igalia
V8 JavaScript Engine
● Implemented and shipped:
○ JS private methods proposal
● Improved:
○ Startup snapshot API for integration in Node.js core
● Work in progress:
○ Optimization of the JS public/private class fields (design doc)
● Patches to the V8 repository (last 18 months):
○ 15 patches merged
○ 2 patches currently under review (CL 820292, CL 2795831)
Contributions to an open source project: Igalia and the Chromium project
Mario Sánchez Prada - Igalia
LaCrOS (Linux and ChromeOS)
LaCrOS: de-coupling Chrome browser from the Operating System
● Ongoing effort, started working on it on early 2021
● Work done so far:
○ Improved integration with the Window Manager
○ Added multiple display support
○ Fractal scaling (HiDPI)
○ Code refactoring to split chromeos/ into ash/ and lacros/
○ General bugfixing and improvements
Check out Abhijeet’s Kandalkar lightning talk at BlinkOn 14
Contributions to an open source project: Igalia and the Chromium project
Mario Sánchez Prada - Igalia
● Recently started to work on the “Multiple Page Architecture” (MPArch) effort
● Solve supporting multiple pages in a given tab for different use cases:
○ Back/Forward cache
○ Pre-rendering
○ Fenced frames
○ Portals
○ Guest views
● Still work in progress, see the metabug for more details
Check out Lucas Gadani’s talk at BlinkOn 14
Multiple Page Architecture
Contributions to an open source project: Igalia and the Chromium project
Mario Sánchez Prada - Igalia
Interoperability
● Fixed Chromium's behavior to align with the specs and other
browsers’ implementation:
○ ASCII case-insensitiveness for keywords (feature)
○ Scroll coordinates in non-default writing mode (feature)
● Migrated Chromium’s web tests to Web Platform Tests:
○ Migrated 240 tests mainly related to Flexbox (89), Filters (44), Masking
(13) and Grid Layout (94)
○ Investigated 96 tests and deemed ineligible for porting.
○ Identified missing features and bugs in other Web engines
○ Several bugs reported to Firefox and WebKit
Contributions to an open source project: Igalia and the Chromium project
Mario Sánchez Prada - Igalia
Other contributions
● Protocol handlers:
○ Safelist distributed web schemes for registerProtocolHandler()
○ Escaping of U+0020 SPACE and U+7F DELETE in URLs
○ Remove the title argument from registerProtocolHandler()
○ Custom protocol handlers bypass Service Worker fetch event
○ Allow cross-origin registration in extensions
● Extensions:
○ chrome.tabs.removeCSS (Removed CSS added by chrome.tabs.insertCSS
)
○ chrome.dom.openOrClosedShadowRoot (Allowed access of the closed shadow root)
Contributions to an open source project: Igalia and the Chromium project
Mario Sánchez Prada - Igalia
Other contributions
● New contributors:
○ 9 new Igalians working on Chromium upstream:
Alexander Surkov, Minju Kim, Zakhar Voit, Ziran Sun, Felipe Erias,
Byungwoo Lee, Yeunjoo Choi, Roger Zanoni, Delan Azabani
○ 3 OWNERs:
Henrique Ferreiro, Nick Diego Yamane, Oriol Obrafu
○ 1 new API OWNER:
Manuel Rego Casasnovas
...plus several other changes & fixes
Contributions to an open source project: Igalia and the Chromium project
Mario Sánchez Prada - Igalia
Some stats & numbers
Some stats & numbers
● 3555 CLs merged to the Chromium repository in the past 18 months
● 33 igalians landed patches in different areas of Chromium (+2 in V8):
Onion Soup, CSS, Accessibility, Ozone, LaCrOS, MathML, Interoperability...
Source: git shortlog -sne --after='2019-11-01T00:00Z' 
--before='2021-05-01T00:00Z' --author=igalia.com
Some stats & numbers
Source: BlinkOn 14’s opening keynote (May 11th, 2021)
Top non-Google contributor to Chromium in number of commits (Google’s contributions: ~92%)
Some stats & numbers
Source: BlinkOn 14’s opening keynote (May 11th, 2021)
Non-google / chromium contributors per-year
5th non-Google contributor to Chromium by team size
Contributions to an open source project: Igalia and the Chromium project
Mario Sánchez Prada - Igalia
Credit
Igalians contributing to the work presented here:
Abhijeet Kandalkar, Alexander Dunaev, Alexander Surkov, Antia Puentes, Antonio
Gomes, Byungwoo Lee, Caitlin Potter, Cathie Chen, Delan Azabani, Felipe Erias,
Frédéric Wang, Gyuyoung Kim, Henrique Ferreiro, Jacobo Aragunde Pérez, Javier
Fernández García-Boente, Joanmarie Diggs, Jose Dapena Paz, Joyee Cheung, Julie
Jeongeun Kim, Maksim Sisov, Manuel Rego Casasnovas, Mario Sanchez Prada, Martin
Robinson, Minju Kim, Miyoung Shin, Nick Diego Yamane, Oriol Brufau, Rob Buis, Roger
Zanoni, Rossana Monteriso, Sergio Villar Senin, Shivam Balikondwar, Víctor Manuel
Jáquez Leal, Yeunjoo Choi, Zakhar Voit, Ziran Sun
Contributions to an open source project: Igalia and the Chromium project
Mario Sánchez Prada - Igalia
Thank you!
● Mail: mario@igalia.com
● Blog: https://blogs.igalia.com/mario
● Other: @mariospr at Twitter & GitHub
Contributions to an open source project: Igalia and the Chromium project

Contenu connexe

Tendances

Qt Tutorial - Part 1
Qt Tutorial - Part 1Qt Tutorial - Part 1
Qt Tutorial - Part 1
rmitc
 
WebKit Clutter Port Present and Future; WebKitGtk Status and Roadmap to WebKi...
WebKit Clutter Port Present and Future; WebKitGtk Status and Roadmap to WebKi...WebKit Clutter Port Present and Future; WebKitGtk Status and Roadmap to WebKi...
WebKit Clutter Port Present and Future; WebKitGtk Status and Roadmap to WebKi...
Igalia
 

Tendances (20)

Development with Qt for Windows CE
Development with Qt for Windows CEDevelopment with Qt for Windows CE
Development with Qt for Windows CE
 
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
 
Driving and virtualizing control systems: the Open Source approach used in Wh...
Driving and virtualizing control systems: the Open Source approach used in Wh...Driving and virtualizing control systems: the Open Source approach used in Wh...
Driving and virtualizing control systems: the Open Source approach used in Wh...
 
Inject the Web into your GStreamer pipeline with WPE using a GStreamer/WebKit...
Inject the Web into your GStreamer pipeline with WPE using a GStreamer/WebKit...Inject the Web into your GStreamer pipeline with WPE using a GStreamer/WebKit...
Inject the Web into your GStreamer pipeline with WPE using a GStreamer/WebKit...
 
Building a Browser for Automotive: Alternatives, Challenges and Recommendations
Building a Browser for Automotive: Alternatives, Challenges and RecommendationsBuilding a Browser for Automotive: Alternatives, Challenges and Recommendations
Building a Browser for Automotive: Alternatives, Challenges and Recommendations
 
Qt Tutorial - Part 1
Qt Tutorial - Part 1Qt Tutorial - Part 1
Qt Tutorial - Part 1
 
The WebKit project (LinuxCon North America 2012)
The WebKit project (LinuxCon North America 2012)The WebKit project (LinuxCon North America 2012)
The WebKit project (LinuxCon North America 2012)
 
WebKit and GStreamer
WebKit and GStreamerWebKit and GStreamer
WebKit and GStreamer
 
HTML5 on the AGL demo platform with Chromium and WAM (AGL AMM March 2021)
HTML5 on the AGL demo platform with Chromium and WAM (AGL AMM March 2021)HTML5 on the AGL demo platform with Chromium and WAM (AGL AMM March 2021)
HTML5 on the AGL demo platform with Chromium and WAM (AGL AMM March 2021)
 
WebKit Clutter Port Present and Future; WebKitGtk Status and Roadmap to WebKi...
WebKit Clutter Port Present and Future; WebKitGtk Status and Roadmap to WebKi...WebKit Clutter Port Present and Future; WebKitGtk Status and Roadmap to WebKi...
WebKit Clutter Port Present and Future; WebKitGtk Status and Roadmap to WebKi...
 
WebKit2 And You (GUADEC 2013)
WebKit2 And You (GUADEC 2013)WebKit2 And You (GUADEC 2013)
WebKit2 And You (GUADEC 2013)
 
What's new with JavaScript in GNOME: The 2020 edition (GUADEC 2020)
What's new with JavaScript in GNOME: The 2020 edition (GUADEC 2020)What's new with JavaScript in GNOME: The 2020 edition (GUADEC 2020)
What's new with JavaScript in GNOME: The 2020 edition (GUADEC 2020)
 
Pairing WebKit and Wayland for Linux-Based Embedded Web Content Presentation ...
Pairing WebKit and Wayland for Linux-Based Embedded Web Content Presentation ...Pairing WebKit and Wayland for Linux-Based Embedded Web Content Presentation ...
Pairing WebKit and Wayland for Linux-Based Embedded Web Content Presentation ...
 
The pathway to Chromium on Wayland (Web Engines Hackfest 2018)
The pathway to Chromium on Wayland (Web Engines Hackfest 2018)The pathway to Chromium on Wayland (Web Engines Hackfest 2018)
The pathway to Chromium on Wayland (Web Engines Hackfest 2018)
 
Introduction to Qt programming
Introduction to Qt programmingIntroduction to Qt programming
Introduction to Qt programming
 
Introduction to Qt
Introduction to QtIntroduction to Qt
Introduction to Qt
 
GStreamer support in WebKit. what’s new?
GStreamer support in WebKit. what’s new?GStreamer support in WebKit. what’s new?
GStreamer support in WebKit. what’s new?
 
Petri Niemi Qt Web Kit
Petri Niemi Qt Web KitPetri Niemi Qt Web Kit
Petri Niemi Qt Web Kit
 
Qt Technical Presentation
Qt Technical PresentationQt Technical Presentation
Qt Technical Presentation
 
Chromium Ozone
Chromium OzoneChromium Ozone
Chromium Ozone
 

Similaire à Contributions to an open source project: Igalia and the Chromium project

The Chromium project's Way to Wayland (FOSDEM 2018)
The Chromium project's Way to Wayland (FOSDEM 2018)The Chromium project's Way to Wayland (FOSDEM 2018)
The Chromium project's Way to Wayland (FOSDEM 2018)
Igalia
 
Programming for non tech entrepreneurs
Programming for non tech entrepreneursProgramming for non tech entrepreneurs
Programming for non tech entrepreneurs
Rodrigo Gil
 

Similaire à Contributions to an open source project: Igalia and the Chromium project (20)

The Chromium project's Way to Wayland (FOSDEM 2018)
The Chromium project's Way to Wayland (FOSDEM 2018)The Chromium project's Way to Wayland (FOSDEM 2018)
The Chromium project's Way to Wayland (FOSDEM 2018)
 
The Chromium/Wayland project (Web Engines Hackfest 2017)
The Chromium/Wayland project (Web Engines Hackfest 2017)The Chromium/Wayland project (Web Engines Hackfest 2017)
The Chromium/Wayland project (Web Engines Hackfest 2017)
 
Chromium wayland
Chromium waylandChromium wayland
Chromium wayland
 
The Chromium/Wayland Project (BlinkOn 9)
The Chromium/Wayland Project (BlinkOn 9)The Chromium/Wayland Project (BlinkOn 9)
The Chromium/Wayland Project (BlinkOn 9)
 
Summary of Igalia's contributions to Chromium in the past year (BlinkOn 10)
Summary of Igalia's contributions to Chromium in the past year (BlinkOn 10)Summary of Igalia's contributions to Chromium in the past year (BlinkOn 10)
Summary of Igalia's contributions to Chromium in the past year (BlinkOn 10)
 
JIO and WebViewers: interoperability for Javascript and Web Applications
JIO and WebViewers: interoperability  for Javascript and Web ApplicationsJIO and WebViewers: interoperability  for Javascript and Web Applications
JIO and WebViewers: interoperability for Javascript and Web Applications
 
Top linux distributions & open source Browsers
Top linux distributions & open source BrowsersTop linux distributions & open source Browsers
Top linux distributions & open source Browsers
 
George Grey Welcome Keynote - BUD17-100K1
George Grey Welcome Keynote - BUD17-100K1George Grey Welcome Keynote - BUD17-100K1
George Grey Welcome Keynote - BUD17-100K1
 
Introducing chrome apps (ogura)
Introducing chrome apps (ogura)Introducing chrome apps (ogura)
Introducing chrome apps (ogura)
 
Community catalysts value of open source
Community catalysts   value of open sourceCommunity catalysts   value of open source
Community catalysts value of open source
 
Rmll 2010 AEGIS Mainstreaming Accessbility Open Source
Rmll 2010 AEGIS Mainstreaming Accessbility Open SourceRmll 2010 AEGIS Mainstreaming Accessbility Open Source
Rmll 2010 AEGIS Mainstreaming Accessbility Open Source
 
DevOps & SRE at Google Scale
DevOps & SRE at Google ScaleDevOps & SRE at Google Scale
DevOps & SRE at Google Scale
 
Run your code serverlessly on Google's open cloud
Run your code serverlessly on Google's open cloudRun your code serverlessly on Google's open cloud
Run your code serverlessly on Google's open cloud
 
Programming for non tech entrepreneurs
Programming for non tech entrepreneursProgramming for non tech entrepreneurs
Programming for non tech entrepreneurs
 
Browsers and Web Runtimes for Automotive: Alternatives, Challenges, and Curre...
Browsers and Web Runtimes for Automotive: Alternatives, Challenges, and Curre...Browsers and Web Runtimes for Automotive: Alternatives, Challenges, and Curre...
Browsers and Web Runtimes for Automotive: Alternatives, Challenges, and Curre...
 
How Brave update works
How Brave update worksHow Brave update works
How Brave update works
 
Serverless computing with Google Cloud
Serverless computing with Google CloudServerless computing with Google Cloud
Serverless computing with Google Cloud
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Program
 
Building a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixBuilding a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at Netflix
 
Building a browser for automotive. alternatives, challenges and recommendatio...
Building a browser for automotive. alternatives, challenges and recommendatio...Building a browser for automotive. alternatives, challenges and recommendatio...
Building a browser for automotive. alternatives, challenges and recommendatio...
 

Plus de Igalia

Building End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEBuilding End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPE
Igalia
 
Automated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded DevicesAutomated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded Devices
Igalia
 
Running JS via WASM faster with JIT
Running JS via WASM      faster with JITRunning JS via WASM      faster with JIT
Running JS via WASM faster with JIT
Igalia
 
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Igalia
 

Plus de Igalia (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Building End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEBuilding End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPE
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Automated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded DevicesAutomated Testing for Web-based Systems on Embedded Devices
Automated Testing for Web-based Systems on Embedded Devices
 
Embedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to MaintenanceEmbedding WPE WebKit - from Bring-up to Maintenance
Embedding WPE WebKit - from Bring-up to Maintenance
 
Optimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdfOptimizing Scheduler for Linux Gaming.pdf
Optimizing Scheduler for Linux Gaming.pdf
 
Running JS via WASM faster with JIT
Running JS via WASM      faster with JITRunning JS via WASM      faster with JIT
Running JS via WASM faster with JIT
 
To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!To crash or not to crash: if you do, at least recover fast!
To crash or not to crash: if you do, at least recover fast!
 
Implementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamerImplementing a Vulkan Video Encoder From Mesa to GStreamer
Implementing a Vulkan Video Encoder From Mesa to GStreamer
 
8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa8 Years of Open Drivers, including the State of Vulkan in Mesa
8 Years of Open Drivers, including the State of Vulkan in Mesa
 
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIntroducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por Igalia
 
2023 in Chimera Linux
2023 in Chimera                    Linux2023 in Chimera                    Linux
2023 in Chimera Linux
 
Building a Linux distro with LLVM
Building a Linux distro        with LLVMBuilding a Linux distro        with LLVM
Building a Linux distro with LLVM
 
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUsturnip: Update on Open Source Vulkan Driver for Adreno GPUs
turnip: Update on Open Source Vulkan Driver for Adreno GPUs
 
Graphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devicesGraphics stack updates for Raspberry Pi devices
Graphics stack updates for Raspberry Pi devices
 
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSDelegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOS
 
MessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the webMessageFormat: The future of i18n on the web
MessageFormat: The future of i18n on the web
 
Replacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shadersReplacing the geometry pipeline with mesh shaders
Replacing the geometry pipeline with mesh shaders
 
I'm not an AMD expert, but...
I'm not an AMD expert, but...I'm not an AMD expert, but...
I'm not an AMD expert, but...
 
Status of Vulkan on Raspberry
Status of Vulkan on RaspberryStatus of Vulkan on Raspberry
Status of Vulkan on Raspberry
 

Dernier

Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
soniya singh
 
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Call Girls In Delhi Whatsup 9873940964 Enjoy Unlimited Pleasure
 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
ellan12
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
sexy call girls service in goa
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
soniya singh
 
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
shivangimorya083
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Sheetaleventcompany
 

Dernier (20)

Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
 
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.
INDIVIDUAL ASSIGNMENT #3 CBG, PRESENTATION.
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
 
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
 
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptxAWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
 
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
 
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
 
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOG
 
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
 
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
 
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
Russian Call Girls in %(+971524965298  )#  Call Girls in DubaiRussian Call Girls in %(+971524965298  )#  Call Girls in Dubai
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
 

Contributions to an open source project: Igalia and the Chromium project

  • 1. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada <mario@igalia.com> ICSE 2021 - Spanish Industry Case Studies Wednesday, 26th of May 2021
  • 2. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada - Igalia About me ● CS Engineer, partner of Igalia and member of its Chromium team ● Involvement as part of different Open Source communities: ○ Chromium: Servicification, Onion Soup ○ WebKit: WebKitGTK, Linux Accessibility ○ GNOME: Contributor, GNOME foundation member ● Other work done in the past: ○ Development of Linux-based OS’s (i.e. Endless OS, Litl OS) ○ Samsung SmartTV platform (WebKit & Chromium) ○ Nokia’s Maemo: APT & Hildon Application Manager
  • 3. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada - Igalia About Igalia ● Highly specialized Open Source consultancy ● Worker-owned, employee-run, flat structure ● Headquartered in A Coruña, Galicia (Spain) ● 100+ people working from all over the world distributed among 25 countries and 11 timezones ● Browsers and Web engines related teams: Chromium, WebKit, Web Platform, Compilers, Graphics, Multimedia, Accessibility
  • 4. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada - Igalia What is Chromium?
  • 5. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada - Igalia What is Chromium? ● Standalone Free & Open Source Web browser ● Mostly licensed under the terms of the BSD License ○ Some specific bits under MIT, LGPL, GPL and others ● Available for different platforms, desktop & mobile: ○ Windows, Mac OS, Linux, iOS, Android (since 4.4 KitKat!) ● Multi-process and modular architecture: ○ Browser process + other processes (e.g. renderers, GPU, network…) ○ Content module for embedding: //content/browser & //content/renderer ● Used as the base of several browsers out there: ○ Chrome, Samsung Browser, Microsoft Edge, Opera, UC Browser, Brave...
  • 6. What is Chromium? Market share of over 70% as of April 2021 (statcounter.com)
  • 7. What is Chromium? Very fast growth over the past 10 years (statcounter.com)
  • 8. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada - Igalia Chromium vs Chrome ● Chromium and Chrome are both free as in “free beer” ● Only Chromium’s is fully Open Source (you can build & modify it) ● Chrome based on Chromium, with closed parts on top: ○ Automatic updater, API keys for Google Services (e.g. Speech API), support for popular non-free multimedia codecs (i.e. H.264, AAC), Widevine support (e.g. Netflix)... ● Chrome can neither be built, nor be freely re-distributed either ● Different branding too (e.g. different name, different icon...) Chromium Chrome
  • 11. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada - Igalia Chromium, Blink & V8 ● Chromium is the whole browser, but doesn’t do all on its own Source code: https://chromium.googlesource.com/chromium/src.git ● Blink is the web engine Chromium uses to render web content ○ Blink arranges HTML/CSS content to show up on screen, responds to user interactions, plays media content, implements JavaScript APIs… Source code: third_party/blink/ directory in Chromium’s repository ● V8 is the JavaScript engine that Chromium relies on: ○ Responsible for executing JavaScript code in the browser ○ Can also be run independently (e.g. Node.JS) Source code: https://chromium.googlesource.com/v8/v8.git
  • 13. Chromium, Blink & V8 Chromium V8 (e.g.) Blink
  • 14. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada - Igalia What is Chromium OS? ● A full Operating System built on top of Chromium ● It boots the machine and implements a modern desktop environment: ○ Session management, hardware detection, full- screen/windowed applications, maximize/minimize windows, install/uninstall/update applications, battery management, suspension & resume… ● Like Chromium vs Chrome, only Chromium OS is fully free (build it, modify it) ● Mostly popular via “Chrome OS machines” (a.k.a. Chromebooks)
  • 15. What is Chromium OS? Image Attribution: ChromiumOS-desk.png by TheDevDude95, licensed under the terms of the Creative Commons Attribution-Share Alike 4.0 International license
  • 16. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada - Igalia What have we contributed to the Chromium project recently?
  • 17. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada - Igalia Code Health: Onion Soup project ● Started this collaboration in February 2019 ● Modules migration from //content/renderer to Blink: ○ //c/r/media: Finished webrtc, audio, peerconnection ○ //c/r/java: Java/JS bridge mojoification ○ //c/r/a11y: Removed content::AXContent* classes ● Started moving //media/blink to Blink (WIP) This process helped remove 235+ definitions (i.e. classes, enums, methods...) from Blink’s public API (see tracking spreadsheet)
  • 18. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada - Igalia Code Health: Legacy IPC migrations ● Progressed with the migration of legacy IPC to Mojo: ○ Migrated 342/495 messages since we started (08/2019) ○ Main focus on //content so far: ■ Migrated 293/296 messages ○ Migrations outside of //content: ■ Finished printing and Android WebView related IPCs ■ Mostly focused on //extensions right now ■ Migrated 49/199 messages Check out Gyuyoung Kim’s lightning talk at BlinkOn 14
  • 19. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada - Igalia CSS ● ::marker pseudo-element ○ Implemented and shipped ● CSS flow-relative shorthand and offset properties ○ Implemented and shipped ● CSS Custom Properties: ○ Improved performance resolving inheritance (bug) ● New TextBreakIterator's default behavior ○ Changed default behavior to break after space (bug) ● CSS Text and line-breaking ○ Improved trailing space handling and bidirectional text ○ Added support for trailing ideographic space
  • 20. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada - Igalia CSS ● CSS Grid: ○ Fixed bugs, interop and performance issues ● CSS Scrollbars ○ Made scrollbar-gutter available behind the "experimental" flag ○ Started implementing scrollbar-width (testing) ● :focus-visible pseudo-class ○ Implemented changes to include it in the default UA stylesheet ● :has pseudo-class ○ Implemented and now checking its feasibility (i.e. Intent to Prototype) ● :dir pseudo-class ○ Implemented behind a runtime flag, pending to ship (experimental)
  • 21. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada - Igalia Accessibility ● Enabled Linux accessibility mode on the fly (no restart required) ● Added support for more event types in Linux: alert, text attribute change, table sort... ● Improved accessibility debug tools: ○ Ported and enhanced accessibility debug tools to Mac to support complex specifications (e.g. DumpAcessibilityTree) ○ Added support for more complex specifications and scripting ○ Extended cross-platform support and enabled a11y tools to dump trees & events in other web engines i.e. WebKit, Firefox (blog post) ○ Added new selectors and done some code refactoring
  • 22. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada - Igalia Accessibility ● Chromium UI ○ Reported and fixed bugs across all desktop platforms (blog post) ○ Enhanced chrome://history page ○ Enhanced menu item support on Mac ● Caret browsing navigation: ○ Improved support for the shadow DOM and flat-tree navigation ● Accessible name calculation ○ Imported tens of new tests ● General maintenance ○ Bug fixing, performance improvements, tests...
  • 23. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada - Igalia Chromium on Wayland ● Working to natively support Chromium on Wayland since 2016 ○ Ozone/Wayland platform is fully upstream since 2018 ● Work on the X11 backend started in the middle of 2019 ○ Refactored components that were desktop/X11-only to share their implementation with the Ozone/X11 platform ● Ozone built by default and part of official Chrome releases ○ Experimental & disabled by default, can be enabled in runtime: --enable-features=UseOzonePlatform --ozone-platform=x11|wayland ● Finch trial for Ozone/X11 launched on April 29th 2021 ○ Parity with non-Ozone/X11 now!
  • 24. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada - Igalia Chromium on Wayland ● Developed extension for Wayland DnD protocol (still WIP) ○ Needed to overcome limitations blocking development of tab dragging feature in Chromium running on Wayland ○ Implemented in Exo (Wayland compositor for ChromeOS) ○ Proposal for standardization upstream in wayland-protocols ● Next steps: ○ Have a successful finch trial for Ozone/Wayland ○ Make Ozone default on Linux (at some point in H2/2021) Check out Alexander Dunaev’s talk at the Web Engines Hackfest 2021
  • 25. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada - Igalia MathML ● Upstreamed a lot from our 2019 downstream branch: i.e. basic setup & layout, operator dictionary, new CSS properties ● Started to upstream support for stretchy operators See tracking bug and the list of merged CLs
  • 26. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada - Igalia V8 JavaScript Engine ● Implemented and shipped: ○ JS private methods proposal ● Improved: ○ Startup snapshot API for integration in Node.js core ● Work in progress: ○ Optimization of the JS public/private class fields (design doc) ● Patches to the V8 repository (last 18 months): ○ 15 patches merged ○ 2 patches currently under review (CL 820292, CL 2795831)
  • 27. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada - Igalia LaCrOS (Linux and ChromeOS) LaCrOS: de-coupling Chrome browser from the Operating System ● Ongoing effort, started working on it on early 2021 ● Work done so far: ○ Improved integration with the Window Manager ○ Added multiple display support ○ Fractal scaling (HiDPI) ○ Code refactoring to split chromeos/ into ash/ and lacros/ ○ General bugfixing and improvements Check out Abhijeet’s Kandalkar lightning talk at BlinkOn 14
  • 28. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada - Igalia ● Recently started to work on the “Multiple Page Architecture” (MPArch) effort ● Solve supporting multiple pages in a given tab for different use cases: ○ Back/Forward cache ○ Pre-rendering ○ Fenced frames ○ Portals ○ Guest views ● Still work in progress, see the metabug for more details Check out Lucas Gadani’s talk at BlinkOn 14 Multiple Page Architecture
  • 29. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada - Igalia Interoperability ● Fixed Chromium's behavior to align with the specs and other browsers’ implementation: ○ ASCII case-insensitiveness for keywords (feature) ○ Scroll coordinates in non-default writing mode (feature) ● Migrated Chromium’s web tests to Web Platform Tests: ○ Migrated 240 tests mainly related to Flexbox (89), Filters (44), Masking (13) and Grid Layout (94) ○ Investigated 96 tests and deemed ineligible for porting. ○ Identified missing features and bugs in other Web engines ○ Several bugs reported to Firefox and WebKit
  • 30. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada - Igalia Other contributions ● Protocol handlers: ○ Safelist distributed web schemes for registerProtocolHandler() ○ Escaping of U+0020 SPACE and U+7F DELETE in URLs ○ Remove the title argument from registerProtocolHandler() ○ Custom protocol handlers bypass Service Worker fetch event ○ Allow cross-origin registration in extensions ● Extensions: ○ chrome.tabs.removeCSS (Removed CSS added by chrome.tabs.insertCSS ) ○ chrome.dom.openOrClosedShadowRoot (Allowed access of the closed shadow root)
  • 31. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada - Igalia Other contributions ● New contributors: ○ 9 new Igalians working on Chromium upstream: Alexander Surkov, Minju Kim, Zakhar Voit, Ziran Sun, Felipe Erias, Byungwoo Lee, Yeunjoo Choi, Roger Zanoni, Delan Azabani ○ 3 OWNERs: Henrique Ferreiro, Nick Diego Yamane, Oriol Obrafu ○ 1 new API OWNER: Manuel Rego Casasnovas ...plus several other changes & fixes
  • 32. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada - Igalia Some stats & numbers
  • 33. Some stats & numbers ● 3555 CLs merged to the Chromium repository in the past 18 months ● 33 igalians landed patches in different areas of Chromium (+2 in V8): Onion Soup, CSS, Accessibility, Ozone, LaCrOS, MathML, Interoperability... Source: git shortlog -sne --after='2019-11-01T00:00Z' --before='2021-05-01T00:00Z' --author=igalia.com
  • 34. Some stats & numbers Source: BlinkOn 14’s opening keynote (May 11th, 2021) Top non-Google contributor to Chromium in number of commits (Google’s contributions: ~92%)
  • 35. Some stats & numbers Source: BlinkOn 14’s opening keynote (May 11th, 2021) Non-google / chromium contributors per-year 5th non-Google contributor to Chromium by team size
  • 36. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada - Igalia Credit Igalians contributing to the work presented here: Abhijeet Kandalkar, Alexander Dunaev, Alexander Surkov, Antia Puentes, Antonio Gomes, Byungwoo Lee, Caitlin Potter, Cathie Chen, Delan Azabani, Felipe Erias, Frédéric Wang, Gyuyoung Kim, Henrique Ferreiro, Jacobo Aragunde Pérez, Javier Fernández García-Boente, Joanmarie Diggs, Jose Dapena Paz, Joyee Cheung, Julie Jeongeun Kim, Maksim Sisov, Manuel Rego Casasnovas, Mario Sanchez Prada, Martin Robinson, Minju Kim, Miyoung Shin, Nick Diego Yamane, Oriol Brufau, Rob Buis, Roger Zanoni, Rossana Monteriso, Sergio Villar Senin, Shivam Balikondwar, Víctor Manuel Jáquez Leal, Yeunjoo Choi, Zakhar Voit, Ziran Sun
  • 37. Contributions to an open source project: Igalia and the Chromium project Mario Sánchez Prada - Igalia Thank you! ● Mail: mario@igalia.com ● Blog: https://blogs.igalia.com/mario ● Other: @mariospr at Twitter & GitHub