Removing 2,645 Lines of the Old Clear Data Dialog
Firefox shipped two clear-data dialogs in parallel for several releases: the old sanitize.xhtml and the new redesigned sanitize_v2.xhtml, gated by the preference privacy.sanitize.useOldClearHistoryDialog. The new dialog had been the default for long enough that removing the old one was overdue. This section covers three patches that closed out the migration.
The patches
Removing the Old Dialog — Bug 1856418 | D271909. Deleted 2,645 lines across 46 files. The patch touched UI files, the privacy preference itself, the backup component (which had a conditional branch on the old dialog pref), the C++ content security allowlist, and call sites in necko, places, and the urlbar. The cross-team scope was the hard part: eight reviewer groups across six subteams. Reviewers: manuel, necko-reviewers, places-reviewers, urlbar-reviewers, akulyk, valentin. Landed January 14, 2026.
Dead Code Cleanup — Bug 2010586 | D279160. The first patch removed the dialog itself; this followup caught the references that survived. The backup component had lazy pref getters for both the old and new shutdown prefs with a conditional branch that no longer made sense, and the C++ content security allowlist had stale entries. Reviewers: manuel, tschuster, kpatenio. Landed January 16, 2026.
Loading Indicator — Bug 1968076 | D272497. The new clear-data dialog calculates the size of cookies, site data, and cached files on open, to show those sizes next to each checkbox. The calculation takes three to ten seconds depending on the user’s data volume. During that window the checkboxes sat there with no size labels and no indication that anything was happening, and users were reporting the dialog as broken. I added animated loading spinners that appear immediately on open and hide once the calculation completes. Reviewers: manuel, desktop-theme-reviewers, fluent-reviewers, bolsson, sfoster. Landed January 15, 2026.
What the dialog migration was actually about
The 2,645-line diff sounds like a code-deletion exercise, and the diff itself is mechanically that. The work was the coordination. Firefox has a convention that every cross-team change needs review from each team whose code is touched, and a single patch with eight reviewer groups means waiting for eight separate sign-offs, addressing eight sets of comments, and not landing until the last one is happy. The first version of the removal patch sat in review for three weeks because two reviewer groups had conflicting style requests for the same shared file. The patch landed on the third revision after both teams agreed on a single style.
This is the kind of work that does not produce a portfolio line but does produce a working browser. The interesting skill is reviewer triage rather than C++.