- Name of tool/project: mediawiki-services-chromium-render
- Project home page: https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/services/chromium-render
- Name of team requesting review: Readers Web
- Primary contact: @phuedx
- Target date for deployment: Q2 FY2017-2018
- Link to code repository / patchset: https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/services/chromium-render
Description of the tool/project / Description of how the tool will be used at WMF
Services maintain the Electron-based PDF rendering service. Under its current load, the service hangs regularly after consuming a large amount of memory and can also fail to restart gracefully (see T174916, T159922, and T172815 for additional context and discussion).
Electron, a Node.js based desktop application development platform, is based on headless Chromium. By driving headless Chromium directly, rather than via a high-level binding it, we believe that we can make the service simpler and easier to maintain.
We (Readers Web and, eventually, Readers Infra) aim to build a POC replacement for the Electron-based render service, using puppeteer to programmatically control a firejailed headless Chromium process for rendering PDFs. We intend to slave the replacement service to the existing service in order to determine whether it's a suitable replacement.
Has this project been reviewed before?
Note well that Services, who are currently responsible for the Electron-based render service, will also be providing concept review for the project.
Working test environment
Readers Web will be responsible for the service immediately after its deployment and while it's evaluated. If, after evaluation, the headless Chromium based renderer supersedes the current Electron-based renderer, then Readers Infrastructure will take over responsibility.