T419169 - invalid URL when opening external content#6537
Open
uwemartin-lgtm wants to merge 2 commits into
Open
T419169 - invalid URL when opening external content#6537uwemartin-lgtm wants to merge 2 commits into
uwemartin-lgtm wants to merge 2 commits into
Conversation
…er. Adding test cases to verify behavior.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What does this do?
Fixing incorrectly encoded URL which leads to incorrect navigation in browsers like DuckDuckGo
Why is this needed?
The problem with the code in
LinkHandleris that if the url embedded in themessagePayloadtransferred toonMessagecontains an encoded space character (%20).UriUtil.decodeURLwill decode it and replace it with a real space character. This is then passed toonUrlClickwhere it is assigned to the local variablehref. This local variable is then used to create anUriwhich is assigned to the local variableuri. In this step, the space character is not encoded again. When passing uri to external browsers usingonExternalLinkClicked, it depends on the functionality of the browser how the raw space character is interpreted. Apparently,DuckDuckGo(and potentially further browsers) process only the first part of the URI - ignoring the second part after the space character.Problem

Solution proposal

I also added unit testing to verify if the correct content is created in LinkHandler.
Phabricator:
https://phabricator.wikimedia.org/T...