Switch from `btoa`/`atob` to custom serializer
atob
and btoa
are unable to serialize non-ASCII characters leading to a serialization error for anything from non-Latin usernames to non-Latin page names. This commit introduces serialize
and deserialize
which performs URL percent encoding prior to any form of Base64 conversion, forcing all non-ASCII characters to be converted into ASCII and thus avoiding the limitation of atob
/btoa
.
Assesed no carried-over impacts to UV, atob
/btoa
conversion seems to happen only prior to inter-window broadcasts.