Always serialize and deserialize ids the same way #5182
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
RawId
's serialization/deserialization currently depends on what cargo features are enabled. Iftrace
is enabled it is serialized via theSerialId
type and ifreplay
is enabled it is deserialized fromSerialId
.This means that if an application serializes and deserializes Ids (like gecko does for some of the remoting), then having only one of
trace
andreplay
features enabled is broken. Firefox only uses thetrace
feature.For example:
It's unclear why it used to work and only started breaking at the latest update.
With this patch PR, ids are always serialized via
SerialId
. It's probably not what we want long term, but we need the fix rather urgently so it will have to do for now.Checklist
cargo fmt
.cargo clippy
.cargo xtask test
to run tests.