Impact
Medium
Problem / Motivation
Custom schemes exist; CORS/fetch/XHR compatibility needs explicit end-to-end assertions for headers and origin policy interaction.
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 "RegisterCustomSchemeHandler won't let do fetch and XMLHttpRequest requests".
Example implementation (current API)
using System.Text;
builder.RegisterCustomSchemeHandler("app", (_, _, url, out string? contentType) => {
contentType = "application/json";
var json = "{\"ok\":true,\"source\":\"app-scheme\"}";
return new MemoryStream(Encoding.UTF8.GetBytes(json));
});
const response = await fetch("app://host/data.json");
const data = await response.json();
console.log(data.ok);
Technical proposal
Scope implementation to: core managed runtime (src/InfiniFrame/*, src/InfiniFrame.Shared/*, src/InfiniFrame.Js/*). Keep behavior deterministic across Windows/Linux/macOS and document platform-specific limitations explicitly.
Additional context
Photino reference: tryphotino/photino.NET#232
Checklist
Impact
Medium
Problem / Motivation
Custom schemes exist; CORS/fetch/XHR compatibility needs explicit end-to-end assertions for headers and origin policy interaction.
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 "RegisterCustomSchemeHandler won't let do fetch and XMLHttpRequest requests".
Example implementation (current API)
Technical proposal
Scope implementation to: core managed runtime (
src/InfiniFrame/*,src/InfiniFrame.Shared/*,src/InfiniFrame.Js/*). Keep behavior deterministic across Windows/Linux/macOS and document platform-specific limitations explicitly.Additional context
Photino reference: tryphotino/photino.NET#232
Checklist