This is the semiyearly report to let people know a bit more about Igalia’s activities around the Web Platform,
focusing on the activity of the first semester of year 2018.
Finally, we have written more tests for JS language features, performed maintenance and optimization and participated to other spec discussions at TC39. Among performance optimizations, we have contributed a significant optimization to Promise performance to V8.
Igalia has continued the standardization effort at the W3C. We are pleased to
announce that the following milestones have been reached:
On the development side, we implemented new ARIA features and fixed several bugs in WebKit and Gecko. We have refined platform-specific tools that are needed to automate accessibility Web Platform Tests (examine the accessibility tree, obtain information about accessible objects, listen for accessibility events, etc) and hope we will be able to integrate them in Web Platform Tests. Finally we continued maintenance of the Orca screen reader, in particular fixing some accessibility-event-flood issues in Caja and Nautilus that had significant impact on Orca users.
We were also pleased to continue our collaboration with the AMP project.
They provide us a list of bugs and enhancement requests
(mostly for the WebKit iOS port) with concrete use cases and repro cases.
We check the status and plans in WebKit, do
debugging/analysis and of course actually submit patches to address
the issues. That’s not always easy (e.g. when it is touching proprietary code
or requires to find some specific reviewers) but at least we make discussions move
forward. The topics are very diverse, it can be about
iOS frame scrollingcustom elements or
navigating special links
and many others.
In general, our projects are always a good opportunity to write new
Web Platform Tests import them
in WebKit/Chromium/Mozilla or improve the testing infrastructure. We have been able
to work on tests for several specifications we work on.
Thanks to support from Bloomberg we’ve been pursuing our activities around CSS:
WebRTC: We made the raspberry pi work with Firefox and Chrome properly and started pushing upstream all the branch. We have already upstreamed all the changes required in the current WebKit classes, the libwebrtc compilation and the getUserMedia support. We have two main pending patches: PeerConnection support and EnumerateDevices support.
Media Source Extensions: We refined our implementation and fixed several bugs ; dealing with the corresponding issues on the gstreamer side.
Igalia has been organizing and hosting the Web Engines Hackfest since 2009, a three days event where Web Platform developers can meet, discuss and work together. We are still working on the list of invited, sponsors and talks but you can already save the date: It will happen from 1st to 3rd of October in A Coruña!
This semester, new developers have joined Igalia to pursue the Web platform effort:
Rob Buis, a Dutch developer currently living in Germany. He is a well-known member of the Chromium community and is currently helping on the web platform implementation in WebKit.
Qiuyi Zhang (Joyee), based in China is a prominent member of the Node.js community who is now also assisting our compilers team on V8 developments.
Dominik Infuer, an Austrian specialist in compilers and programming language implementation who is currently helping on our JSC effort.
Oriol Brufau, a recent graduate in math from Spain who has been an active collaborator of the CSS Working Group and a contributor to the Mozilla project. He is working on the CSS Logical Properties and Values specification, implementing it in Chromium implementation.
Darshan Kadu, a computer science student from India, who contributed to GIMP and Blender. He is working on Web Platform Tests with focus on WebKit’s infrastructure and the GTK & WPE ports in particular.
Additionally, Caio Lima is continuing his coding experience in Igalia and is among other things working on implementing BigInt in JSC.
Thank you for reading this blog post and we look forward to more work on the web platform this semester!
Last week, I attended BlinkOn 9. I was very happy to
spend some time with my colleagues working on Chromium, including a new
developer who will join my team next week (to be announced soon!).
This edition had the usual format with presentations, brainstorming,
lightning talks and informal chats with Chromium developers. I attended several
interesting presentations on web platform standardization,
implementation and testing.
It was also great to talk to Googlers in order to coordinate on some of
Igalia’s projects such as
the collaboration with AMP or
MathML in Chromium.
A description of our non-hierarchical model and benefits it brings.
An overview of Igalia’s contribution to the Web Platform.
From the feedback I got, people appreciated the presentation and liked to get more
insight on Igalia. Unfortunately, I was not able to record
the talk due to technical issues. Of course, thirty minutes is a bit short to
develop all the ideas and reply properly to all the questions. But for those who
are interested here are more pointers:
About dependency on the customers, see the last
paragraph of “work groups” in Andy’s blog post “but that would be anarchy!” especially
treating customers as partners. As I said during the talk, as long as we
have enough customers we have some freedom to accept contracts that are more
interesting for our strategy and aligned with our values or negociate
improvements to existing contracts ; without worrying about unstability
About the meaning of “Igalia”, the simple answer is
“it does not mean anything”. If you join Igalia and get the opportunity to
learn about the company history, there is a more complete answer about how
the name was found…
Regarding founders of Igalia in 2001: Dape (who attended BlinkOn), Alex, Juanjo, Xavi, Berto and Chema are indeed still
working at Igalia and in general, very few people have left Igalia since its creation.
Finally we had two related tricky questions from Google employees:
How do you sync with the browser vendors’ own agenda?
What can Google (or any other browser vendor) could do to facilitate involvements of third-party contributors?
One could enumerate different situations but unfortunately there is not a
generic answer. In some cases collaboration worked very well and was
In other cases, things were more complicated and we had to “fight” to
convince browser vendors to keep some existing code or accept new features.
Communication is very important. We try to sync with browser vendors using video conferencing or by attending conferences, but some companies/teams are more or less inclined to reveal information (especially when strategic products
are involved). In general, I have the impression that the more the teams work
close to the Web Platform,
the more they are used to the democratic and open-source
culture and welcome third-party contributions.
Although the ideal is to work upstream, we have recently been developing skills
to manage separate forks and rebase them regularly against the main branch. This
is a good option to find a balance between the request of the customer to implement
features and the need of the browser vendors to focus on their own tasks.
Chromium for Wayland is a good
example of that approach.
Hence probably one way to help third-party contributors is to improve
communication. We had some issues with developers not even willing to talk to us
or not taking time to review or comment on our patches/CLs. If browser vendors
could indicate that they don’t like an approach as soon as possible or that
they won’t accept patches until some refactoring is complete, that would help
us a lot to discuss with clients, properly schedule our tasks and consider the
option of an experimental branch.
Another way to help third-party contributors would be to advertize more
that such contributions are actually possible. Indeed, many people think that
“everything is implemented by browser vendors” which can make difficult to
find clients for web platform development. When companies rant about Google
not implementing feature X, fixing bug Y or participating to standard Z, instead
of ignoring them or denying the importance of the request, it would probably be
more constructive to mention that they can actually pay consulting companies to
do that job. As I indicated in the talk, we recently had such successful
collaborations with Bloomberg,
AMP and we would be happy to find more!
There are probably more to reply to these questions, but that’s my quick
thought on the matter for now. I’ll try discussing with my
colleagues and see if we have more ideas to share.
L’année dernière, j’ai composé la chanson suivante pour l’anniversaire de
Rolando. Je la
publie ci-dessous sous la license
CC BY 4.0. Les paroles de
Rêve avec moi donnait une vision
onirique du Pérou en reprenant les clichés occidentaux. Manco II
donne une vision plus sombre en décrivant l’histoire de la colonisation du pays.
Les livres que j’ai utilisé comme référence sont
ceux de Hiram Bingham (La fabuleuse découverte de la cité perdue des incas)
et de William H. Prescott (History of the Conquest of Peru).
L’histoire est racontée du point de vue de
Manco Capac II. Ce processus
narratif permet d’éviter le manichéisme: Manco critique la colonisation
espagnole (duperie, violence, évangélisation, illégitimité et cupidité des
utilisant lui même un ton belliqueux et autoritaire (l’empire Inca était
lui même une dictature monarchique et religieuse qui a colonisé d’autres
peuples d’amérique du sud).
A leur arrivée dans l’empire Inca, les espagnols réussirent à capturer
l’empereur Inca Atawallpa malgré
leur petit nombre, en utilisant l’avantage technologiques
(notamment chevaux et armes à feu) et leur fourberie (ils tendirent un piège
à Atawallpa). Plus tard,
ils mirent en place un gouvernement fantoche en couronnant son
demi-frère Manco II. Ce dernier finira par organiser une révolte et
faillit même reconquérir
la capitale de l’empire Inca. Réfugié à
continua la guérilla contre les espagnols jusqu’à la fin de sa vie.
Quand ces monstres d'airain
Débarquèrent dans l'empire
Colère de feu au poing
Soif cupide de vampire
Par de spécieux discours
Mon demi-frère dupèrent
Balayant toute sa cour
D'une tempête mortifère
Je cultive mon fiel
Déchu, je me bats
Pour que sous ce ciel
Trône tel un colosse
L'Inca Manco II!
Mon armée se terre
Fin prête au combat
Pour que sur mes terres
Règne tel un colosse
L'Inca Manco II!
Feignant l'roi ingénu
Servile et silencieux
Dans l'ombre j'ai entret'nu
L'armée d'indiens factieux
Se prépare au combat
Pilleurs d'or votre tombeau
Last september, I published a first blog post to let people know a bit more about Igalia’s activities around the Web platform, with a plan to repeat such a review each semester. The present blog post focuses on the activity of the second semester of 2017.
We also contributed patches to fix several issues in the ARIA implementations of WebKit and Gecko and implemented support for the new DPub ARIA roles. We expect to continue this collaboration with Apple and Mozilla next year as well as to resume more active maintenance of Orca, the screen reader used to access graphical desktop environments in GNU/Linux.
Last but not least, progress continues on switching to Web Platform Tests for ARIA and “Accessibility API Mappings” tests. This task is challenging because, unlike other aspects of the Web Platform, testing accessibility mappings cannot be done by solely examining what is rendered by the user agent. Instead, an additional tool, an “Accessible Technology Test Adapter” (ATTA) must be also be run. ATTAs work in a similar fashion to assistive technologies such as screen readers, using the implemented platform accessibility API to query information about elements and reporting what it obtains back to WPT which in turn determines if a test passed or failed. As a result, the tests are currently officially manual while the platform ATTAs continue to be developed and refined. We hope to make sufficient progress during 2018 that ATTA integration into WPT can begin.
On the development side, we maintained and fixed bugs in Grid Layout implementation for Blink and WebKit. We also implemented alignment of positioned items in Blink and WebKit. We have several improvements and bug fixes for editing/selection from Bloomberg’s downstream branch that we’ve already upstreamed or plan to upstream. Finally, it’s worth mentioning that the work done on display: contents by our former coding experience student Emilio Cobos was taken over and completed by antiik (for WebKit) and rune (for Blink) and is now enabled by default! We plan to pursue these developments next year and have various ideas. One of them is improving the way grids are stored in memory to allow huge grids (e.g. spreadsheet).
Web Platform Predictability
Another important task as part of our CSS effort was to address compatibility issues between the different browsers. For example we fixed editing bugs related to HTML List items: WebKit’s Bug 174593/Chromium’s Issue 744936 and WebKit’s Bug 173148/Chromium’s Issue 731621. Inconsistencies in web engines regarding selection with floats have also been detected and we submitted the first patches for WebKit and Blink. Finally, we are currently improving line-breaking behavior in Blink and WebKit, which implies the implementation of new CSS values and properties defined in the last draft of the CSS Text 3 specification.
We expect to continue this effort on Web Platform Predictability next year and we are discussing more ideas e.g. WebPackage or flexbox compatibility issues. For sure, Web Platform Tests are an important aspect to ensure cross-platform inter-operability and we would like to help improving synchronization with the conformance tests of browser repositories. This includes the accessibility tests mentioned above.
Last November, we launched a fundraising Campaign to implement MathML in Chromium and presented it during Frankfurt Book Fair and TPAC. We have gotten very positive feedback so far with encouragement from people excited about this project. We strongly believe the native MathML implementation in the browsers will bring about a huge impact to STEM education across the globe and all the incumbent industries will benefit from the technology. As pointed out by Rick Byers, the web platform is a commons and we believe that a more collective commitment and contribution are essential for making this world a better place!
While waiting for progress on Chromium’s side, we have provided minimal maintenance for MathML in WebKit:
We fixed all the debug ASSERTs reported on Bugzilla.
We did follow-up code clean up and refactoring.
We imported Web Platform tests in WebKit.
We performed review of MathML patches.
Regarding the last point, we would like to thank Minsheng Liu, a new volunteer who has started to contribute patches to WebKit to fix issues with MathML operators. He is willing to continue to work on MathML development in 2018 as well so stay tuned for more improvements!
One of the new features we focused on recently is BigInt. We are working on an implementation of BigInt in SpiderMonkey, which is currently feature-complete but requires more optimization and cleanup. We wrote corresponding test262 conformance tests, which are mostly complete and upstreamed. Next semester, we intend to finish that work while our coding experience student Caio Lima continues work on a BigInt implementation on JSC, which has already started to land. Google also decided to implement that feature in V8 based on the specification we wrote. The BigInt specification that we wrote reached Stage 3 of TC39 standardization. We plan to keep working on these two BigInt implementations, making specification tweaks as needed, with an aim towards reaching Stage 4 at TC39 for the BigInt proposal in 2018.
Igalia implemented and shipped async iterators and generators in Chrome 63, providing a convenient syntax for exposing and using asynchronous data streams, e.g., HTML streams. Additionally, we shipped a major performance optimization for Promises and async functions in V8.
Thanks to sponsorship from Mozilla we have continued our involvement in the Quantum Render project with the goal of using Servo’s WebRender in Firefox.
Support from Metrological has also given us the opportunity to implement more web standards from some Linux ports of WebKit (GTK and WPE, including:
WebP animations support
HTML interactive form validation
Thanks for reading and we look forward to more work on the web platform in 2018. Onwards and upwards!
Gyuyoung and I
attended BlinkOn 8. I had nice discussions and listened to
interesting talks about a wide range of topics (Layout NG,
Accessibility, CSS, Fonts,
Web Predictability & Standards, etc). It was a pleasure to finally meet in persons
some developers I had been in touch with during my projects on
For the lightning talks, we presented our activities
on embedded linux platforms and the Web Platform. Incidentally, it was great to see Igalia’s work
mentioned during the
Next Generation Rendering Engine session.
Obviously, I had the opportunity to visit places and taste Japanese food in
Asakusa, Ueno and Roppongi 😋.
Week 41: San Jose - WebKit Contributors Meeting - Apple
In the past months, I have mostly been working on WebKit at Igalia and
I would have been happy to see my fellow WebKit developers.
However, given the events in Japan and Spain, I was not willing to make another
trip to the USA just after. Hence I had to miss the
WebKit Contributors Meeting again this year 😞.
my colleagues Alex,
were present. Igalia is an important contributor
to WebKit and we will continue to send people and propose some talks next year.
Week 42: Paris - Monthly Speaker Series - Mozilla
This Wednesday, I attended a conference on
Privacy as a Competitive Advantage in Mozilla’s office. It was
to hear about the increasing interest on privacy and to see the
regulation made by the European Union in that direction.
My colleague Philippe was visiting the office
to work with some Mozilla developers on one of our project, so I was also able
to meet him in the conference room. Actually, Mozilla employees were kind enough
to let me stay at the office after the conference… Hence I was able to work on Apple’s Web Engine on a project sponsored by Google at the Mozilla office… probably something you can only do at Igalia 😉. Last but not least, Guillaume was also in holidays in Paris this week, so I let you imagine
what happens when three French guys meet (hint: it involves food 😋).