Packages

rrweb

2.2.0 · 24 Oct 2026MIT4.2M / weekRepositoryHomepagenpmAtom feed

Upgrading rrweb from 1.0.0 to 2.2.0

23 releases in betweennotes for 11

Other targets from 1.0.0Newest 1.x1.1.3
6+
changes to make
0
advisories fixed
32+
new
110+
fixes

Counted from 11 of 23 release notes. Advisories are counted from the advisory database, in full.

Before you upgrade

Tick each one off as you go
  • breaking2.0.0
  • breaking2.0.0
  • breaking2.0.0
  • breaking2.0.0
  • breaking2.0.0
  • deprecated2.0.0

Release by release

  1. 2.2.0

    24 Oct 20261 new · 4 fixes
    • new

      Add a top-level annotation event with record.addAnnotation() and replayer.on('annotation', handler). Annotation data uses type: 'caption' or type: 'timelineMarker'. Import annotationData from @rrweb/types to type annotation data. The player can display these annotations as captions and interactive timeline markers.

    • fixed

      Stopping a recording now releases the root document's mutation buffer and observer — previously the document observer was only disconnected, so each start/stop cycle leaked one buffer — and removes the cross-origin iframe message listener.

    • fixed

      A same-origin iframe is observed once instead of re-observed on every full snapshot (checkoutEveryNth/checkoutEveryNms/manual takeFullSnapshot), so a single iframe mutation is no longer emitted once per checkout; its observers are also released when the iframe is removed or navigates away.

    • fixed

      The untainted-MutationObserver helper iframe used on WebKit/Safari is reference-counted, so it is torn down only when the last observer stops and will get rebuilt for a later recording.

    • fixed

      Disconnect shadow-DOM observers when their host is removed

  2. 2.1.7

    2 Oct 20261 fix
    • fixed

      Fix #1920 - normalization of '0px' in style sheets caused problems with the styled-components library, which built style elements text element by text element. Bug introduced

  3. 2.1.6nothing new or fixed in the note

  4. 2.1.5

    17 Sep 20262 fixes
    • fixed

      Improve performance of untainted dom accessors. Since #1509 we use e.g. dom.parentNode(el) instead of el.parentNode to work around libraries that modify these accessors. Slight improvement to avoid a string allocation each time one of these is called; they are on every hot path.

    • fixed

      Improvements in efficiency of mutation handling at record time; has been identified as a problem numerous times

  5. 2.1.4nothing new or fixed in the note

  6. 2.1.3

    8 Sep 20261 fix
    • fixed

      Ignore autoplay attribute mutations on <video>/<audio> regardless of tag-name case.

  7. 2.1.2

    8 Sep 20262 fixes
    • fixed

      Emit custom events even when skipping over them, eg. when seeking to a specific time

    • fixed

      Use the provided logger from player config instead of directly calling console.warn

  8. 2.1.1nothing new or fixed in the note

46 internal lines (docs, tests, tooling) left out.