• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mozilla / fathom / 349
80%
master: 86%

Build:
Build:
LAST BUILD BRANCH: dependabot/npm_and_yarn/fathom/json5-2.2.3
DEFAULT BRANCH: master
Ran 03 Aug 2019 03:37AM UTC
Jobs 1
Files 14
Run time 3s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

pending completion
349

Pull #116

travis-ci

web-flow
 #118: Fall back to next best sync solution

Unfortunately, the previous commit's approach based on clickability proved untenable.[1]

A distant second sync solution is to early return where possible and use the cheapest styles first (the second implementation approach[2]), which reduces Fathom jank by 13%*, though there are a couple differences:
* No 'getBoxQuads'. This is an experimental API only enabled on Nightly.
* Checks if the element is off-screen. The Price Tracker implementation was missing this check.

Unfortunately, this implementation still uses 'ancestors', which causes expensive XRays[3] work in extension applications and still triggers layout flushes at suboptimal times. This is something that can be avoided with an async solution to the tune of a 40% reduction in jank using 'requestAnimationFrame' and 'setTimeout'[4].

On the brighter side, it is more correct than the previous implementation, removing 'getComputedStyle().width' and 'getComputedStyle().height' completely and covering more valid cases than before.

*: This is slightly worse than the expected 16%, because my original implementation in Price Tracker did not check for elements off-screen as the Fathom implementation does. Its profile[5] shows:
 - The largest unresponsive chunk is still caused by Fathom extraction, contributing 399 ms of jank right around page load.
 - `isVisible` made up 238 ms (60%) of this jank.
 - This change reduced overall Fathom-related jank by 61 ms (13%) compared to the original implementation of isVisible[2].

[1]: https://github.com/mozilla/fathom/pull/116#discussion_r309410670
[2]: https://github.com/mozilla/price-tracker/issues/319#issue-468970781
[3]: https://developer.mozilla.org/en-US/docs/Mozilla/Tech/Xray_vision
[4]: https://github.com/mozilla/price-tracker/issues/319#issuecomment-517554826
[5]: https://perfht.ml/2T0oYQS
Pull Request #116: Fix #118: Improve `isVisible` for correctness and performance

230 of 343 branches covered (67.06%)

700 of 877 relevant lines covered (79.82%)

227663.8 hits per line

Jobs
ID Job ID Ran Files Coverage
1 349.1 03 Aug 2019 03:37AM UTC 0
79.82
Travis Job 349.1
Source Files on build 349
Detailed source file information is not available for this build.
  • Back to Repo
  • Travis Build #349
  • Pull Request #116
  • PR Base - master (#328)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc