Skip to main content

Photino Backlog

This page tracks features and issues mentioned across the Photino ecosystem that are not yet fully implemented or still under discussion in their respective original libraries. The intent is that eventually, all features will be either implemented or rejected to be brought into InfiniFrame. This backlog will be used to track any remaining issues or features that need to be addressed.

Table Legend

  • ✅ : Implemented
  • 🚧 : Under construction
  • 📝 : Assigned to open issue
  • ❓ : Under discussion / unclear if should be handled natively
  • ❌ : Rejected for native implementation
  • 🚫 : Out of scope, which usually means this is normal behavior or not an issue with the original Photino codebase

Photino.Blazor​

StatusFeatureLinksInfiniFrame
✅Need to call UseServiceProviderFactoryphotino.Blazor#83
✅Intercept <a href> navigationphotino.Blazor#111
✅Does not work on wayland?photino.Blazor#138InfiniFrame#251 - Wayland testing coverage added.
✅Cannot publish nativeaot samplephotino.Blazor#143
✅Set a splash screenphotino.Blazor#144InfiniFrame#278
✅Single File Publish - Embed MudBlazor's .\wwwroot_content directoryphotino.Blazor#147
✅Proper disposal of servicesphotino.Blazor#149
✅Sharing of wwwrootphotino.Blazor#152
✅Ability to disable the url hover status indicatorphotino.Blazor#156InfiniFrame#279
✅Services are not Disposed After App Shutdownphotino.Blazor#158
✅Set icon in the taskbar on windows 11photino.Blazor#161InfiniFrame#280
✅.NET 10 supportphotino.Blazor#164, photino.Blazor#165
✅Fix handling of app:// URLs containing a #fragmentphotino.Blazor#166Query/fragment are excluded only from resource lookup and remain browser-visible.
✅Top Empty window caption appear in SetChromeless(true)photino.Blazor#167InfiniFrame#218 - Chromeless mode without disabling caption behaviors implemented.

Photino.Native​

StatusFeatureLinksInfiniFrame
✅Add Window ManagementPhotino.Native#27InfiniFrame#282
✅Native Menu SupportPhotino.Native#44InfiniFrame#283
✅Dedicated scheme for logging from UI to host appPhotino.Native#45
❌Windows x86Photino.Native#53
✅RegisterWindowClosingHandler not working on linux (Debian)Photino.Native#75InfiniFrame#284
✅Add SingleInstanceMode to Photino initializationPhotino.Native#111
❌Android SupportPhotino.Native#115
✅Stack overflow. at Photino.NET.PhotinoWindow.Photino_WaitForExit(IntPtr)Photino.Native#141
✅Drag and Drop functionality doesnt work on LinuxPhotino.Native#152InfiniFrame#285
✅Zooming and Scaling issuesPhotino.Native#153InfiniFrame#286
✅.Focus() on windowPhotino.Native#158 Photino.Native#169InfiniFrame#42
✅Nullptr reference crash in IsColorSchemeChangePhotino.Native#162InfiniFrame#287
✅SetWebView2RuntimePath UTF encoding issue after Photino.NET encoding updatePhotino.Native#163InfiniFrame#275
✅Fix memory leakPhotino.Native#165InfiniFrame#68
✅Add complex notificationsPhotino.Native#166InfiniFrame#288
✅Add functions for dragging and resizing windowsPhotino.Native#167
✅Feature/taskbar flash progressPhotino.Native#168InfiniFrame#289
✅Memory and stability issues in long running Windows applicationPhotino.Native#171
✅Custom scheme handlers broken on WindowsPhotino.Native#173 Photino.Native#174
✅SetTopmost/GetTopmost: incorrect style register on WindowsPhotino.Native#175 Photino.Native#176InfiniFrame#159

Photino.NET​

StatusFeatureLinksInfiniFrame
✅Problem with "insecure origins"Photino.NET#25
✅JS injection into WebViewPhotino.NET#58InfiniFrame#window-features - ExecuteJavaScriptAsync API on IJavaScriptInfiniFrameWindowFeature.
✅Creating a 2nd PhotinoWindow after closing all others failsPhotino.NET#59InfiniFrame#290
✅Is there a way to bypass WebKits SSL check?Photino.NET#65InfiniFrame#291 - First-class EnableIgnoreCertificateErrors(bool) builder API with platform-specific implementations (Windows: WebView2 Chromium flag, Linux: WebKit TLS policy, macOS: certificate trust delegate)
✅Javascript debuggingPhotino.NET#71InfiniFrame#292 - explicit SetRemoteDebuggingPort, loopback-only endpoint on Windows/WebKitGTK Linux, deterministic lifecycle, macOS unsupported behavior, plus capability-gated diagnostics under window.Debug
✅Make window transparentPhotino.NET#73
✅Chromeless WindowPhotino.NET#80InfiniFrame#218 - Chromeless mode without disabling caption behaviors.
✅SendWebMessage from WindowCreated handler raises a System.AccessViolationExceptionPhotino.NET#87InfiniFrame#293
✅Icon failed to loadPhotino.NET#95
✅The application lacks a taskbar IconPhotino.NET#106
✅Possibility to hide the window from the taskbar/dockPhotino.NET#107
❌Make a window only miniablePhotino.NET#112
✅Interoperability between C # and JavaScriptPhotino.NET#120InfiniFrame#219 - Full JS layer control of window functionality.
✅Window.external is deprecated by browsersPhotino.NET#124
✅Intercept navigation eventsPhotino.NET#139InfiniFrame#294 Pre-navigation callback via RegisterNavigationStartingHandler; per-platform interception with cancel support
✅ShowSaveFile How to set the default file namePhotino.NET#140InfiniFrame#295
✅Running as administrator disables other instancesPhotino.NET#162InfiniFrame#296 - Single-instance arbitration implemented.
❌Mica/Fluent design window for windowsPhotino.NET#167
✅Retrieve current Url of PhotinoWindowPhotino.NET#197InfiniFrame#297 - CurrentUrl/CurrentUri properties exposed.
✅Ctrl+ mouse wheel to zoom the pagePhotino.NET#217
✅RegisterCustomSchemeHandler won't let do fetch and XMLHttpRequest requestsPhotino.NET#232Same-origin app://localhost fetch/XHR is supported through secure custom-scheme registration without opening arbitrary cross-origin access.
✅Set the background color of the native window bodyPhotino.NET#239InfiniFrame#299
✅Default csproj file uses WinExe but should use Exe so it will properly build on all platformsPhotino.NET#240
✅Disable browser shortcutsPhotino.NET#251IsBrowserShortcutsEnabled property with EnableBrowserShortcuts() setter on IBrowserInfiniFrameWindowFeature. Stores flag in native init params and window state; getter/setter wired through full C#/C++ bridge. Platform-specific behavior: Windows uses ICoreWebView2Settings10::AreBrowserAcceleratorKeysEnabled when available; Linux/macOS store the flag for JavaScript-injection-based blocking.
✅Fixed WebView2 runtimePhotino.NET#254InfiniFrame#275
✅ILogger implementationPhotino.NET#257
✅Add complex notificationsPhotino.NET#261Same as InfiniFrame#288 rich notifications with action buttons, icons, urgency levels, and async callbacks.
❌Import StartDragging, StartResizingPhotino.NET#262
✅Bindings for controlling taskbar progress/flashPhotino.NET#263InfiniFrame#289 - Taskbar progress and flash implemented.
✅Allow parent window to be set before initializedPhotino.NET#264InfiniFrame#300 InfiniFrame#313
❌Window header sizePhotino.NET#266
✅Optional window title 31-char-length-limitation on Linux/GTKPhotino.NET#267InfiniFrame#301
✅Inject Arbitrary Javascript into WebviewPhotino.NET#268InfiniFrame#window-features - ExecuteJavaScriptAsync API on IJavaScriptInfiniFrameWindowFeature.
✅Parent vs child window behaviorPhotino.NET#269
✅WindowClosed eventPhotino.NET#271InfiniFrame#277
✅SetIconFile Linux crashPhotino.NET#272InfiniFrame#165

Photino.NET.Server​

StatusFeatureLinksInfiniFrame
✅Photino Development ServerPhotino.NET.Server#4