TLDR: we’d like to change the asset canister’s URL decoding logic like this. Any objections?
Long version:
Hello everyone,
Since the beginning, the asset canister has used a custom implementation of URL decoding, which leads to issues with many not-so-uncommon characters (e.g. é
or è
, which are very common in French) since it does not match what new Request("https://example.com/% $").url
produces. The new implementation will use the percent-encoding
crate, which follows the whatwg standard. You can look at the PR here.
While this is a breaking, potentially inconvenient change, we believe that moving forward this will be much more convenient both for maintaining the code of the asset canister and the boundary nodes, and for frontend devs as this will match much more what they expect.
Timeline: If no major concerns are raised, I would merge the PR late next week or early the week after. The change would show up in the next dfx beta (probably 0.21.0-beta.0
) release, which will most likely be made around June 18, and it would be promoted to the default dfx version three weeks later, around July 9.