- [BREAKING] Remove the deprecated
onFID()
function (#519) - [BREAKING] Change browser support policy to Baseline Widely Available (#525)
- [BREAKING] Sort the classes that appear in attribution selectors to reduce cardinality (#518)
- LCP and CLS attribution now saves the selector and element for when the element is removed from the DOM (#562)
- Cap INP breakdowns to INP duration (#528)
- Cap LCP load duration to LCP time (#527)
- Fix memory leak in registering new event listeners on every keydown and click (#554)
- Fix missing LoAF entries in INP attribution (#512)
- Fix interaction count after bfcache restore (#505)
- Fix compatibility issues with TypeScript v5.5 (#497)
- Refactor INP attribution code to fix errors on Windows 10 (#495)
- Fix pending LoAF cleanup logic (#493)
- Move the support check to the top of the onINP() function (#490)
- Fix missing LoAF attribution when entries are dispatched before event entries (#487)
- Add the
ReportCallback
type back but deprecate it (#483)
[!NOTE] See the upgrading to v4 guide for a complete list of all API changes in version 4.
- [BREAKING] Update types to support more generic usage (#471)
- [BREAKING] Split
waitingDuration
to make it easier to understand redirect delays (#458) - [BREAKING] Rename
TTFBAttribution
fields from*Time
to*Duration
(#453) - [BREAKING] Rename
resourceLoadTime
toresourceLoadDuration
in LCP attribution (#450) - [BREAKING] Add INP breakdown timings and LoAF attribution (#442)
- [BREAKING] Deprecate
onFID()
and remove previously deprecated APIs (#435) - Expose the target element in INP attribution (#479)
- Save INP target after interactions to reduce null values when removed from the DOM (#477)
- Cap TTFB in attribution (#440)
- Fix
reportAllChanges
behavior for LCP when library is loaded late (#468)
- Pick the first non-null
target
for INP attribution (#421)
- Add extra guard for
PerformanceEventTiming
not existing (#403)
- Run
onLCP
callback in separate task (#386) - Fix INP durationThreshold bug when set to 0 (#372)
- Prevent FID entries being emitted as INP for non-supporting browsers (#368)
- Make
bindReporter
generic over metric type (#359) - Update INP status in README (#362)
- Fix Metric types for better TypeScript support (#356)
- Fix selector for SVGs for attribution build (#354)
- Export metric rating thresholds in attribution build as well.
- Export metric rating thresholds, add explicit
MetricRatingThresholds
type (#323) - Trim classname selector (#328)
- Add link to CrUX versus RUM blog post (#327)
- Prevent LCP being reported for hidden prerendered pages (#326)
- Add Server Timing information to docs (#324)
- Fix link in
onINP()
thresholds comment (#318) - Update web.dev link for
onINP()
(#307) - Add a note about when to load the library (#305)
- Version number skipped
- Defer CLS logic until after
onFCP()
callback (#297)
- Add support for
'restore'
as anavigationType
(#284) - Report initial CLS value when
reportAllChanges
is true (#283) - Defer all observers until after activation (#282)
- Ignore TTFB for loads where responseStart is zero (#281)
- Defer execution of observer callbacks (#278)
- Clamp LCP and FCP to 0 for prerendered pages (#270)
- Ensure
attribution
object is always present in attribution build (#265)
- Set an explicit unpkg dist file (#261)
- Use the cjs extension for all UMD builds (#257)
- [BREAKING] Add a config object param to all metric functions (#225)
- [BREAKING] Report TTFB after a bfcache restore (#220)
- [BREAKING] Only include last LCP entry in metric entries (#218)
- Update the metric ID prefix for v3 (#251)
- Move the Navigation Timing API polyfill to the base+polyfill build (#248)
- Add a metric rating property (#246)
- Add deprecation notices for base+polyfill builds (#242)
- Add a new attribution build for debugging issues in the field (#237, #244)
- Add support for prerendered pages (#233)
- Rename the
ReportHandler
type toReportCallback
, with alias for back-compat (#225, #227) - Add support for the new INP metric (#221, #232)
- Rename
getXXX()
functions toonXXX()
(#222) - Add a
navigationType
property to the Metric object (#219)
- Prevent TTFB from reporting after bfcache restore (#201)
- Only call report if LCP occurs before first hidden (#197)
- Ensure reported TTFB values are less than the current page time (#187)
- Add feature detects to support Opera mini in extreme data saver mode (#186)
- Add batch reporting support and guidance (#166)
- Detect getEntriesByName support before calling (#158)
- [BREAKING] Update CLS to max session window 5s cap 1s gap (#148)
- Ensure CLS is only reported if page was visible (#149)
- Only report CLS when FCP is reported (#154)
- Update the unique ID version prefix (#157)
- Ignore negative TTFB values in Firefox (#147)
- Add workaround for Safari FCP bug (#145)
- Add more extensive FID feature detect (#143)
- Remove use of legacy API to detect Firefox (#128)
- Fix incorrect UMD config for base+polyfill script (#117)
- Fix missing getter in polyfill (#114)
- Add support for Set in place of WeakSet for IE11 compat (#110)
- Fix missing
typings
declaration (#90)
- [BREAKING] Add support for reporting metrics on back/forward cache restore (#87)
- [BREAKING] Remove the
isFinal
flag from the Metric interface (#86) - Remove the scroll listener to stop LCP observing (#85)
- Remove the unload listener (#68)
- Ensure reports only occur if a PO was created (#58)
- Remove package
type
field (#35)
- Initial public release
- Initial pre-release