When using a tool like https://github.com/autometrics-dev/autometrics-rs in Gitpod (VS Code browser), which adds localhost links with a specific query parameter to hover messages in the IDE, we can observe that clicking on these links doesn't work in VS Code browser.
Here is an IDE hover message with a few links (to localhost:9090) in it:
However, when you click on them in Gitpod VS Code browser, the opened window shows an error that is due to a malformed query:
If we look at the differences between the URL before Gitpod's rewrite (i.e. http://localhost:9090/...) and after Gitpod's rewrite (i.e. https://9090-<workspace_ID>.<cluster>.gitpod.io/...), we can observe several suspicious changes in the URL's query parameter:
As you can see in the diff screenshot above, Gitpod's URL rewriter seems to be escaping or unescaping various characters in the link's query parameter:
escapes the first %20 into %2520
unescapes %5F into _
unescapes %2C into ,
unescapes %28 into (
(and a few others)
Question: Why does Gitpod seem to change anything about the query parameter? I would assume that it only needs to change the protocol + hostname + port, and leave the rest of URLs 100% unchanged. 💭
Bug description
When using a tool like https://github.com/autometrics-dev/autometrics-rs in Gitpod (VS Code browser), which adds
localhost
links with a specific query parameter to hover messages in the IDE, we can observe that clicking on these links doesn't work in VS Code browser.Here is an IDE hover message with a few links (to
localhost:9090
) in it:However, when you click on them in Gitpod VS Code browser, the opened window shows an error that is due to a malformed query:
If we look at the differences between the URL before Gitpod's rewrite (i.e.
http://localhost:9090/...
) and after Gitpod's rewrite (i.e.https://9090-<workspace_ID>.<cluster>.gitpod.io/...
), we can observe several suspicious changes in the URL's query parameter:Steps to reproduce
#[autometrics
macro in the codeRequest Rate
(the first link)Workspace affected
No response
Expected behavior
This should work equally well in VS Code browser and VS Code desktop.
But instead, it fails in Gitpod's VS Code browser.
Example repository
https://github.com/autometrics-dev/autometrics-rs
Anything else?
As you can see in the diff screenshot above, Gitpod's URL rewriter seems to be escaping or unescaping various characters in the link's query parameter:
%20
into%2520
%5F
into_
%2C
into,
%28
into(
Question: Why does Gitpod seem to change anything about the query parameter? I would assume that it only needs to change the protocol + hostname + port, and leave the rest of URLs 100% unchanged. 💭