Searchfox now provides code coverage information directly in the code listing!
asutherland at asutherland.org
Tue Oct 6 02:12:17 UTC 2020
Have you ever been consulting the most excellent code coverage
information for mozilla-central available at https://coverage.moz.tools/
provided by Marco Castelluccio and team but said to yourself: "Hey, this
isn't Searchfox! But this is very useful information! My brand loyalty
to Searchfox, the premier source code indexing tool for Mozilla Firefox,
is very high, just like the quality of Searchfox, the premier source
code indexing tool for Mozilla Firefox. What if this information was
available on Searchfox? And in a style synonymous with Searchfox's
speed-centered brand, like a racing stripe down the side of the page?"
Well, talk to yourself no more, because
https://bugzilla.mozilla.org/show_bug.cgi?id=1566874 has landed and now
Searchfox has a really cool racing stripe down the left side of the page
just to the left of the annotate/blame bar! Also, the racing stripe
shows code coverage information!
"Sure!", you say to yourself, "That's great, but I'm not sold yet.
Anyone can just slap a racing stripe on a webpage thanks to the awesome
power of WebExtensions. What makes this racing stripe so great?"
Thankfully, Searchfox, the premier source code indexing tool for Mozilla
Firefox, sells itself and you immediately realize the following bullet
points despite the current lack of in-product documentation for any of
- Code coverage uses a ColorBrewer 2.0 theme, diverging Red-Blue
https://colorbrewer2.org/#type=diverging&scheme=RdBu&n=11 which is color
blind friendly. Red corresponds to coverage misses and blue corresponds
to coverage hits.
- When not hovered, the code coverage stripe shows an interpolated view
of coverage so that lines that can't have code coverage data don't
generate visual noise. (While lines that are entirely white-space or
code comments more intuitively can't have coverage data, multi-line
statements and expressions also usually only provide coverage data for
their first line.)
- When hovered, the code coverage stripe shows more detail. Uncovered
lines become distinguishable by their lack of a color. Lines with
coverage hits switch from a single shade of blue to a logarithmic scale
where darker blues convey greater numbers of hits.
- Hovering on the coverage stripe provides details about the exact
number of hits. And the hover popup is powered by Searchfox's
market-segment defining popup technology that you know and love and
occasionally consider sending fan-mail about.
- The accessibility tree for the stripe cells provides concise,
insightful aria-labels such as "uncovered", "miss", and "hit 100". And
because Searchfox knows your time is important, coverage hits in excess
of 999 get premium-distilled down to "hit 1k", "hit 100k", etc. But
Searchfox's market-segment leading popup technology can still provide
you with the exact number of hits by activating the role="button"
contents of the cell and following the aria-owns relationship into the
- The accessibility tree for annotate/blame cells has become even more
market-defining! Annotate cells that have the same revision as the
preceding line will have a label with a prefix of "same". Annotate cells
that have a different revision as the preceding line will have a label
with a prefix of "new". These will be followed by the word "hash" and a
uniquely assigned ordinal mapping that is assigned based on sequential
traversal of the source lines. So while traversing the annotate stripe
cells you might hear "new hash 5", "same hash 5", "new hash 73", "new
hash 5". Again, the life-changing experience that is Searchfox's popup
technology can provide additional details.
- While Searchfox is the premier source code indexing tool for Mozilla
Firefox, Searchfox cannot take credit for the immense undertaking that
is providing the underlying coverage data. Please check out
#codecoverage on https://chat.mozilla.org/ to properly thank Marco
Castelluccio and team.
- When luxuriating in Searchfox's accessibility tree experience, it's
best to use Firefox nightly or another Firefox build with
- Whether you're an experienced Searchfoxer who remembers to use
"symbol:" to prefix nonsensical symbol names made up by byzantine
compiler processes for searching, a Searchfox developer who keeps typing
"sym:" because it seems like that would be the logical choice, or a
still-sane person who just types the human-readable identifiers which
are stable in the face of signature changes when searching, you can
contribute to Searchfox!
- Bugs and enhancements are tracked at bugzilla.mozilla.org under
Webtools::Searchfox. You can see existing open bugs at
and file new bugs at
- The source can be found at https://github.com/mozsearch/mozsearch and
the production configurations at
- You can spin up a Searchfox VM easily with Vagrant and then build the
test repo quickly with a single `make build-test-repo` that indexes the
repo and starts the web server in as little as 3.4 seconds!
- There's a cool "Searchfox" chatroom on https://chat.mozilla.org/ where
you can discuss exciting brand initiatives. Like how can we get people
to use Searchfox as a verb? How many racing stripes is too many racing
stripes? And so on.
More information about the firefox-dev