Fix #20420: Prevent double decoding of file URL parameter #20482
+35
−1
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.
Fixes #20420
Description
This PR fixes a regression where passing a URL with encoded parameters (e.g.,
?token=%2Ffoo) to the viewer would fail due to incorrect double decoding.fileparameter retrieved fromURLSearchParamswas being passed todecodeURIComponent. SinceURLSearchParams.get()already decodes values, this caused a second round of decoding. This corrupted URLs containing encoded characters (like%2Fbecoming/), which broke signed URLs or paths requiring encoding.decodeURIComponentcall. Thefileparameter is now passed directly to the URL constructor, preserving the correct encoding.Testing
Verified manually using a reproduction case:
https://example.com/pdf?token=%2Ffoo...token=/foo(Incorrect, broke the token)....token=%2Ffoo(Correct, preserves encoding).