The Platform Layout Team is primarily responsible for Gecko's style system and layout engine. We strive to build and maintain an engine that is both high-performance and standards-compliant, while providing support for features unique to Firefox.
The team's technical domains within Gecko include:
- CSS animations and transitions
- CSS parsing and computation
- Layout (of all types, including block and inline, positioned, columns, floats, flexbox, grid, form controls, images, video, tables, and text)
- IRC: #layout on irc.mozilla.org
- Slack: #layout on Slack (MoCo employees only)
- E-mail: email@example.com
Communications Channel Guidelines
- Synchronous discussions about engineering-specific topics (bugs, patches, code reviews, architectural issues, etc.) should happen in IRC.
- Synchronous discussions about team operations, announcements, strategy, roadmap, and other banter tend to happen in Slack, unless such communications can and should be made public.
Roadmap and Status
This Airtable list contains all work-in-progress and backlog items that the team is considering for the near – and distant – future. Note that this list is subject to change at any time.
For more detailed information, notes from the team's weekly standup meetings are available.
Quarterly Engineering Plans
Starting in Q3 2019, we will be publishing quarterly engineering plans outlining our primary high-level projects and objectives for a given quarter.
We publish notes and lists of all fixed layout bugs for a given release. These release notes call out items of particular importance (new features, webcompat fixes) that may be helpful for web content authors.
Filing a Bug
Open a bug under "Product: Core", using one of the following components:
- CSS Parsing and Computation
- CSS Transitions and Animations
- DOM: CSS Object Model
- Layout: Block and Inline
- Layout: Columns
- Layout: Flexbox
- Layout: Floats
- Controls Layout: Form Controls
- Layout: Generated Content, Lists, and Counters
- Layout: Grid
- Layout: Images, Video, and HTML Frames
- Layout: Positioned
- Layout: Ruby
- Layout: Scrolling and Overflow
- Layout: Tables
- Layout: Text and Fonts
- Print Preview
- Printing: Output
- Printing: Setup
Bug Triage and Whiteboard Tagging Guidelines
We use Bugzilla to track a combination of both bugs and new features. As such, we employ a hybrid system of Bugzilla priority and, optionally, a backlog tag (noted as
[layout:backlog:YYYYqQ] in the bug's whiteboard field). The backlog tag, if provided, indicates the intended quarter and/or target release in which we intend to work on and ship a given feature. For instance, a tag of `[layout:backlog:2019q3]` indicates that we will attempt to work on the bug in Q3 of 2019.
Our bugs page contains a list of useful links to Bugzilla queries we use for regular bug triage and prioritization.
- Priority 1 (P1): Blocker, crash or very high-impact performance or web compatibility bug. Must-fix in the current iteration. The severity of the P1 should generally be set accordingly.
- Priority 2 (P2): High-priority bug that should be in-progress and fixed within the next two releases. Includes moderately high-impact performance or web compatibility bugs.
- Priority 3 (P3): Normal-priority bug or a backlog item.
- Priority 4 (P4): Low-priority bug or managed by a bot (such as an intermittent test failure). We are unlikely to devote resources to these bugs any time soon.
- Priority 5 (P5): We do not plan to spend time on these bugs but we will accept patches.
To get started, read the programmer's primer on Gecko.
If you're looking for a good first bug to fix, the following resources may help: