Fix KML descriptions that link to relative paths #5352
Merged
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.
If a KML description included a relative path, the browser request would end up using whatever server the application was hosted on as the base path, this is because the KML HTML would be injected into the InfoBox as-is. The end result is that relative images and links inside of KML files would not load properly.
To fix this, we now expand all relative paths into absolute paths that use the KML's source Uri as the bas.
I added a test that fails in master and passes in this branch; but if you want to test this manually, you can unzip
gdpPerCapita2008.kmz
into it's own subdirectory and load the KML. Click on any item and it will be missing images in master, but they properly show up in this branch (the KMZ itself always worked because it goes through a different code path).