fix(rrdom): Ignore invalid DOM attributes when diffing (#1561)
* fix(rrdom): Ignore invalid DOM attributes when diffing (#213)
We encountered an issue where replays with invalid attributes (e.g.
`@click`) would break rendering the replay after seeking. The exception
bubbles up to
[here](62093d4385/packages/rrweb/src/replay/index.ts (L270-L279)),
which means the replay will continue to play, but the replay mirror will
be incomplete.
Closes https://github.com/getsentry/team-replay/issues/458
* add changeset
This commit is contained in:
@@ -354,7 +354,16 @@ function diffProps(
|
||||
}
|
||||
};
|
||||
} else if (newTree.tagName === 'IFRAME' && name === 'srcdoc') continue;
|
||||
else oldTree.setAttribute(name, newValue);
|
||||
else {
|
||||
try {
|
||||
oldTree.setAttribute(name, newValue);
|
||||
} catch (err) {
|
||||
// We want to continue diffing so we quietly catch
|
||||
// this exception. Otherwise, this can throw and bubble up to
|
||||
// the `ReplayerEvents.Flush` listener and break rendering
|
||||
console.warn(err);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (const { name } of Array.from(oldAttributes))
|
||||
|
||||
Reference in New Issue
Block a user