Handle relative image hrefs without base URI#498
Merged
Conversation
This was referenced May 12, 2026
This was referenced May 20, 2026
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.
PR Summary: Handle Relative Image Hrefs Without a Base URI
Overview
Fixes
SvgService.GetImageUri/ image loading behavior for SVG documents that contain a relative image reference, such asxlink:href="6F03BD87.png", when the owning document has noBaseUri.Previously, unresolved relative image URIs could flow into the external image loading path. In issue #472, this showed up as a null-base URI failure while trying to resolve a relative image reference. The intended behavior for this case is to gracefully skip the missing/unresolvable image and continue rendering the rest of the SVG.
Changes
SvgService.GetImageso unresolved relative image URIs returnnulldirectly.GetImagereturningnullfor unresolved relative image hrefs.BaseUriis missing.BaseUriexists.xlink:href.Rationale
An SVG loaded from a stream or inline string may not have a usable
BaseUri. In that case a relative external image reference cannot be resolved safely. Returningnullfrom image loading matches the existing renderer behavior for unavailable images: the image node becomes non-renderable while the rest of the document continues through the render pipeline.This avoids depending on exception handling from
WebRequest.Createor URI construction for normal missing-resource control flow.Verification
Commands run during development:
Results:
Notes
Skip unresolved relative image loadsCover missing relative image base URI