Impact
Low
Problem / Motivation
Custom scheme + URI policy exist, but there is no dedicated regression test for app://...#fragment preservation in navigation and message-origin flows.
Current behavior
Relevant primitives exist in the files listed above, but this backlog item does not have a complete, explicit InfiniFrame contract with dedicated coverage.
Expected behavior
Add integration tests for scheme URLs with fragments, fetch/XHR, and CORS headers; adjust scheme response metadata and origin policy handling as needed.
Proposed solution
Implement this incrementally:
- Define/adjust the managed public API in
InfiniFrame.Shared.
- Wire implementation in
InfiniFrame and InfiniFrame.Native where required.
- Add focused tests (
tests/InfiniFrameTests*) and docs updates (docs/docs/guides/*, docs/docs/migration/*).
Alternatives considered
- Keep as unsupported and document migration limitation.
- Provide a workaround-only approach without first-class API.
Use case
Applications migrating from Photino expect this behavior and currently need custom handling for "Fix handling of app:// URLs containing a #fragment".
Example implementation (current API)
using System.Text;
var builder = InfiniFrameWindowBuilder.Create()
.SetAllowedNavigationSchemes("https", "http", "file", "app")
.RegisterCustomSchemeHandler("app", (_, _, url, out string? contentType) => {
contentType = "text/html";
var html = """
<!doctype html>
<html>
<body>
<a href='app://host/index.html#settings'>Go to #settings</a>
<div id='settings'>Settings section</div>
</body>
</html>
""";
return new MemoryStream(Encoding.UTF8.GetBytes(html));
});
var window = builder.Build();
window.Load("app://host/index.html#settings");
window.WaitForClose();
Technical proposal
Scope implementation to: Blazor window host and UI bridge (src/InfiniFrame.Blazor*, src/InfiniFrame.BlazorWebView*). Keep behavior deterministic across Windows/Linux/macOS and document platform-specific limitations explicitly.
Additional context
Photino reference: tryphotino/photino.Blazor#166
Checklist
Impact
Low
Problem / Motivation
Custom scheme + URI policy exist, but there is no dedicated regression test for
app://...#fragmentpreservation in navigation and message-origin flows.Current behavior
Relevant primitives exist in the files listed above, but this backlog item does not have a complete, explicit InfiniFrame contract with dedicated coverage.
Expected behavior
Add integration tests for scheme URLs with fragments, fetch/XHR, and CORS headers; adjust scheme response metadata and origin policy handling as needed.
Proposed solution
Implement this incrementally:
InfiniFrame.Shared.InfiniFrameandInfiniFrame.Nativewhere required.tests/InfiniFrameTests*) and docs updates (docs/docs/guides/*,docs/docs/migration/*).Alternatives considered
Use case
Applications migrating from Photino expect this behavior and currently need custom handling for "Fix handling of app:// URLs containing a #fragment".
Example implementation (current API)
Technical proposal
Scope implementation to: Blazor window host and UI bridge (
src/InfiniFrame.Blazor*,src/InfiniFrame.BlazorWebView*). Keep behavior deterministic across Windows/Linux/macOS and document platform-specific limitations explicitly.Additional context
Photino reference: tryphotino/photino.Blazor#166
Checklist