Chrome Mac Team Triage Process

This document outlines how the Chrome Mac Team triages bugs. Triage is the process of converting raw bug reports filed by developers or users into actionable, prioritized tasks assigned to engineers.

*** promo If you are not on the Chrome Mac Team and want to send a bug to them for triage, please add the Mac-TriageQueue hotlist and allow the Mac triage rotation to assign them.


The Mac bug triage process is split into two phases. First-phase triage is done daily in week-long shifts by a single person. Second-phase triage is done in a standing meeting on Mondays by the Mac team as a group.

Quick Reference

*** promo All necessary hotlists and saved searches are bundled into the Mac triage bookmark group.


  1. During the week, the primary works from the “Mac triage candidates” saved search. The primary has two main goals:

    • To ensure that each bug is looked at.

    • To add bugs that should be seen by the whole team to the Mac-TriageQueue hotlist

As of March 2024, the candidates saved search is greatly inflated by bugs that became unassigned as a part of the Buganizer transition. Due to this, it's not expected that the primary gets through the whole search. Instead, the primary should focus on bugs filed or updated within the past one or two weeks. We expect that we will shrink the queue to a reasonable size within the next few months

  1. During the triage meeting, the team as a whole looks at the triage queue. At the end of the triage meeting, it's expected that every bug in the queue will be in one of the following states:

First-phase triage

First-phase triage is, first and foremost, a filter. Not every bug that is filed on a Mac, or even exclusively occurs on the Mac is best handled by the Mac team. If the bug is obviously very domain-specific (eg: “this advanced CSS feature is behaving strangely”, or “my printer is printing everything upside down”), feel free to skip this iteration step and send the bug straight to the involved team‘s component. Our triage filter is coarse enough that this isn’t always sufficient to get the bug out of our queue; in these cases the bug should also be bypassed

If the primary determines that the Mac team is responsible for this bug (or it isn't immediately apparent), the next step is to ensure the symptoms and reproduction steps of the bug are well-understood.

If the bug is clearly of interest to the wider team, or seems like it could use input from domain experts, it makes sense to put it directly into the triage queue at this point.

The main work of this phase is iterating with the bug reporter to get crash IDs, repro steps, traces, and other data we might need to nail down the bug. Useful hotlists at this step are:

  • Needs-Feedback, which marks the bug as waiting for a response from the reporter
  • Needs-TestConfirmation, which requests that Test Engineering attempt the bug's repro steps
  • Needs-Bisect, which requests that Test Engineering bisect the bug down to a first bad release

The latter two hotlists work much better when there are reliable repro steps for a bug, so endeavour to get those first - TE time is precious and we should make good use of it.

Once the bug is sufficiently understood, it should end up in one of the following states:

  • In the Mac team triage queue
  • WontFix, if they are invalid bug reports or working as intended
  • Duplicate, if they are identical to an existing bug
  • Assigned to an obvious assignee
  • Moved to another team's component
  • Bypassed

We wait 28 days for user feedback on Needs-Feedback bugs; after 28 days without a response to a question we move bugs to WontFix.

Some useful debugging questions here:

  • What are your exact OS version and Chrome version?
  • Does it happen all the time?
  • Does it happen in Incognito? (this checks for bad cached data, cookies, etc)
  • Does it happen with extensions disabled?
  • Does it happen in a new profile?
  • Does it happen in a new user-data-dir?
  • If it‘s a web bug, is there a reduced test case? We generally can’t act on “my website is broken” type issues
  • Can you attach a screenshot/screen recording of what you mean?
  • Can you paste the crash IDs from chrome://crashes?
  • Can you get a sample of the misbehaving process with Activity Monitor?
  • Can you upload a trace from chrome://tracing?
  • Can you paste the contents of chrome://gpu?
  • Can you paste the contents of chrome://version?

Second-phase triage

Second-phase triage is for “complicated” bugs that benefit from the full team's perspective. In principle, anything with clear and unambiguous next steps should not make it to the triage queue.

The primary “drives” by presenting the triage queue in Chromium's issue tracker, and the team goes through each bug one by one, taking action by consensus. If the queue is exhausted, the team proceeds to look at the triage candidate queue.

Some bugs require more feedback from either the reporter, or cc'ed members of other teams; in that case we may choose to keep it in the queue for a week or two for monitoring. Otherwise, the set of outcomes is similar to first-phase triage:

  • WontFix, if they are invalid bug reports or working as intended
  • Duplicate, if they are identical to an existing bug
  • Assigned to an obvious assignee
  • Moved to another team's component
  • Bypassed