Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
bd0cf30
Add application lifecycle and window tracking
AnnaSasDev Sep 5, 2026
5cdcafe
Add native application lifecycle and managed wrapper
AnnaSasDev Sep 5, 2026
905bab1
App-driven web server and window lifecycle
AnnaSasDev Sep 5, 2026
b448519
Add application-first web and Blazor startup
AnnaSasDev Sep 5, 2026
21afb89
EOD
AnnaSasDev Sep 5, 2026
9ac129d
Update: Merge application-driven lifecycle improvements and native no…
AnnaSasDev Sep 7, 2026
b65b958
Add ApplicationBuilder and new integration APIs
AnnaSasDev Sep 7, 2026
215cc2e
Refactor startup timeout handling and improve error clarity
AnnaSasDev Sep 7, 2026
e9049db
Refactor: centralize URI security handling and streamline web message…
AnnaSasDev Sep 7, 2026
2843869
Add section headers to BlazorWebView file
AnnaSasDev Sep 7, 2026
038782b
Add window configuration handling and validation improvements
AnnaSasDev Sep 7, 2026
0e9b3a4
Update InfiniFrame.slnx
AnnaSasDev Sep 8, 2026
2fc56b1
Merge branch 'core' into InfiniFrameApplication
AnnaSasDev Sep 8, 2026
dab3d3f
CI: update shared release workflow to use version bumper v2
AnnaSasDev Sep 8, 2026
cc23f90
Remove legacy native parameter definitions and related equality compa…
AnnaSasDev Sep 8, 2026
d0e5f36
Refactor: centralize and restructure shared window state management f…
AnnaSasDev Sep 8, 2026
abf8bac
c++ project restructure
AnnaSasDev Sep 8, 2026
7be3ef5
Remove unused native API definitions and associated header files. Cle…
AnnaSasDev Sep 8, 2026
dc4c6f2
move
AnnaSasDev Sep 8, 2026
b27e1d7
Move PublicAbiCompileBoundary.cpp to tests directory in NativeBridge …
AnnaSasDev Sep 8, 2026
f1e3975
further moving
AnnaSasDev Sep 8, 2026
95466c2
Fix formatting in PublicAbiCompileBoundary.cpp static_assert statement
AnnaSasDev Sep 8, 2026
abb2ea1
Restructure: modularize project with new sub-modules (Application, Wi…
AnnaSasDev Sep 8, 2026
2456c75
Update usings
AnnaSasDev Sep 8, 2026
644bd0a
Remove `InfiniFrame.Interop` module and migrate interop-related class…
AnnaSasDev Sep 8, 2026
1e5fcc5
Modularize `InfiniFrame.NativeBridge.Parameters` into `Application` a…
AnnaSasDev Sep 8, 2026
c20c7f8
Add equality comparer and validator for `InfiniFrameNativeApplication…
AnnaSasDev Sep 8, 2026
86b2713
Remove unused imports of `InfiniFrame.NativeBridge.Parameters` across…
AnnaSasDev Sep 8, 2026
e67f1e5
Refactor application, modularize window integrations, update methods …
AnnaSasDev Sep 8, 2026
a74c06f
Stabilize app lifecycle and web integration
AnnaSasDev Sep 9, 2026
c38a062
Improve lifecycle, BlazorWebView & native cleanup
AnnaSasDev Sep 9, 2026
7d36f4d
Fix native single-file setup and disposal
AnnaSasDev Sep 9, 2026
ef051c5
test restruucture
AnnaSasDev Sep 9, 2026
5f564d8
Enhance lifecycle teardown and window disposal
AnnaSasDev Sep 10, 2026
11bb6b3
Introduce ReadyFailureCallback and improve lifecycle robustness
AnnaSasDev Sep 10, 2026
1edd926
expanded testing
AnnaSasDev Sep 10, 2026
6e5a673
Add comprehensive multi-window and integration tests
AnnaSasDev Sep 10, 2026
12ab3e7
Bump `Microsoft.AspNetCore.Components.WebView` package versions for .…
AnnaSasDev Sep 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/workflows/shared-release-bump-version.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:

- name: Bump Version
id: bump
uses: Code-Of-Chaos/action-version-bumper@v2.1.0
uses: Code-Of-Chaos/action-version-bumper@v2
with:
version_file: src/Directory.Build.props
additional_version_files: |
Expand Down
50 changes: 42 additions & 8 deletions .github/workflows/shared-release-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,30 @@ jobs:
/p:InfiniFrameEnableTestExports=false \
-o ./release

- name: Verify Meta Package Dependencies
shell: bash
run: |
set -euo pipefail
PACKAGE=""
for candidate in ./release/InfiniLore.InfiniFrame.[0-9]*.nupkg; do
if [[ -f "$candidate" && "$candidate" != *.symbols.nupkg ]]; then
PACKAGE="$candidate"
break
fi
done
[ -n "$PACKAGE" ] || { echo "Missing InfiniLore.InfiniFrame meta-package"; exit 1; }
NUSPEC=$(unzip -p "$PACKAGE" 'InfiniLore.InfiniFrame.nuspec')
for dependency in Application Js NativeBridge Security Shared StaticAssets Window; do
echo "$NUSPEC" | grep -q "InfiniLore.InfiniFrame.$dependency" || {
echo "Missing meta-package dependency: InfiniLore.InfiniFrame.$dependency"
exit 1
}
done
if unzip -l "$PACKAGE" | grep -Eq 'lib/net[^/]*/InfiniFrame\.(Application|Security|StaticAssets|Window)\.dll'; then
echo "The meta-package contains duplicated implementation assemblies"
exit 1
fi

- name: Upload NuGet Artifacts
uses: actions/upload-artifact@v7
with:
Expand Down Expand Up @@ -173,17 +197,27 @@ jobs:
env:
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
run: |
dotnet nuget push "./release/*.nupkg" \
--api-key "$NUGET_API_KEY" \
--source https://api.nuget.org/v3/index.json \
--skip-duplicate
set -euo pipefail
packages=(NativeBridge Shared Js Security StaticAssets Window Application Blazor BlazorWebView WebServer SingleFile InfiniFrame)
for package in "${packages[@]}"; do
prefix="InfiniLore.InfiniFrame.$package"
[[ "$package" == "InfiniFrame" ]] && prefix="InfiniLore.InfiniFrame"
file=$(find ./release -maxdepth 1 -name "$prefix.*.nupkg" ! -name '*.symbols.nupkg' -print -quit)
[ -n "$file" ] || { echo "Missing package: $package"; exit 1; }
dotnet nuget push "$file" --api-key "$NUGET_API_KEY" --source https://api.nuget.org/v3/index.json --skip-duplicate
done

- name: Push GitHub Packages
if: inputs.publish_to_nuget
env:
GITHUB_TOKEN: ${{ github.token }}
run: |
dotnet nuget push "./release/*.nupkg" \
--api-key "$GITHUB_TOKEN" \
--source "https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json" \
--skip-duplicate
set -euo pipefail
packages=(NativeBridge Shared Js Security StaticAssets Window Application Blazor BlazorWebView WebServer SingleFile InfiniFrame)
for package in "${packages[@]}"; do
prefix="InfiniLore.InfiniFrame.$package"
[[ "$package" == "InfiniFrame" ]] && prefix="InfiniLore.InfiniFrame"
file=$(find ./release -maxdepth 1 -name "$prefix.*.nupkg" ! -name '*.symbols.nupkg' -print -quit)
[ -n "$file" ] || { echo "Missing package: $package"; exit 1; }
dotnet nuget push "$file" --api-key "$GITHUB_TOKEN" --source "https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json" --skip-duplicate
done
24 changes: 24 additions & 0 deletions .github/workflows/shared-testing-dotnetpack.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,30 @@ jobs:
/p:InfiniFrameEnableTestExports=${{ inputs.enable_test_exports }} \
-o ./release

- name: Verify Meta Package Dependencies
shell: bash
run: |
set -euo pipefail
PACKAGE=""
for candidate in ./release/InfiniLore.InfiniFrame.[0-9]*.nupkg; do
if [[ -f "$candidate" && "$candidate" != *.symbols.nupkg ]]; then
PACKAGE="$candidate"
break
fi
done
[ -n "$PACKAGE" ] || { echo "Missing InfiniLore.InfiniFrame meta-package"; exit 1; }
NUSPEC=$(unzip -p "$PACKAGE" 'InfiniLore.InfiniFrame.nuspec')
for dependency in Application Js NativeBridge Security Shared StaticAssets Window; do
echo "$NUSPEC" | grep -q "InfiniLore.InfiniFrame.$dependency" || {
echo "Missing meta-package dependency: InfiniLore.InfiniFrame.$dependency"
exit 1
}
done
if unzip -l "$PACKAGE" | grep -Eq 'lib/net[^/]*/InfiniFrame\.(Application|Security|StaticAssets|Window)\.dll'; then
echo "The meta-package contains duplicated implementation assemblies"
exit 1
fi

- name: Verify NativeBridge Package Natives
run: |
PACKAGE=""
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/shared-testing-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ jobs:
New-ItemProperty -Path $werBase -Name DumpType -PropertyType DWord -Value 2 -Force | Out-Null
New-ItemProperty -Path $werBase -Name DumpCount -PropertyType DWord -Value 20 -Force | Out-Null

foreach ($exe in @("testhost.exe", "InfiniTests.InfiniFrame.exe", "dotnet.exe")) {
foreach ($exe in @("testhost.exe", "InfiniTests.InfiniFrame.Application.exe", "InfiniTests.InfiniFrame.Window.exe", "dotnet.exe")) {
$exeKey = Join-Path $werBase $exe
New-Item -Path $exeKey -Force | Out-Null
New-ItemProperty -Path $exeKey -Name DumpFolder -PropertyType ExpandString -Value $dumpRoot -Force | Out-Null
Expand Down Expand Up @@ -160,7 +160,7 @@ jobs:
Write-Host "Runner architecture: $env:PROCESSOR_ARCHITECTURE"
dotnet --info

$nativeFiles = Get-ChildItem -Path "tests/InfiniTests/bin/Release" -Recurse -File `
$nativeFiles = Get-ChildItem -Path @("tests/InfiniTests.InfiniFrame.Application/bin/Release", "tests/InfiniTests.InfiniFrame.Window/bin/Release") -Recurse -File `
| Where-Object { $_.Name -in @("InfiniFrame.Native.dll", "WebView2Loader.dll", "testhost.exe") }
foreach ($file in $nativeFiles) {
$machine = Get-PeMachine $file.FullName
Expand Down
34 changes: 17 additions & 17 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -5,29 +5,29 @@
</PropertyGroup>
<!-- .NET 8 -->
<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'">
<PackageVersion Include="Microsoft.AspNetCore.Components.WebView" Version="8.0.30" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebView" Version="8.0.31" />
</ItemGroup>
<!-- .NET 9 -->
<ItemGroup Condition="'$(TargetFramework)' == 'net9.0'">
<PackageVersion Include="Microsoft.AspNetCore.Components.WebView" Version="9.0.19" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebView" Version="9.0.20" />
</ItemGroup>
<!-- .NET 10 -->
<ItemGroup Condition="'$(TargetFramework)' == 'net10.0'">
<PackageVersion Include="Microsoft.AspNetCore.Components.WebView" Version="10.0.11" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebView" Version="10.0.12" />
</ItemGroup>
<!-- Common packages for all frameworks -->
<ItemGroup>
<PackageVersion Include="CodeOfChaos.Extensions.DependencyInjection" Version="0.85.0" />
<PackageVersion Include="FluentValidation" Version="12.1.1" />
<PackageVersion Include="JetBrains.Annotations" Version="2026.2.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.11" />
<PackageVersion Include="Microsoft.Extensions.FileProviders.Abstractions" Version="10.0.11" />
<PackageVersion Include="Microsoft.Extensions.FileProviders.Composite" Version="10.0.11" />
<PackageVersion Include="Microsoft.Extensions.FileProviders.Embedded" Version="10.0.11" />
<PackageVersion Include="Microsoft.Extensions.FileProviders.Physical" Version="10.0.11" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.11" />
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="10.0.11" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.11" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.12" />
<PackageVersion Include="Microsoft.Extensions.FileProviders.Abstractions" Version="10.0.12" />
<PackageVersion Include="Microsoft.Extensions.FileProviders.Composite" Version="10.0.12" />
<PackageVersion Include="Microsoft.Extensions.FileProviders.Embedded" Version="10.0.12" />
<PackageVersion Include="Microsoft.Extensions.FileProviders.Physical" Version="10.0.12" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.12" />
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="10.0.12" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.12" />
<PackageVersion Include="Microsoft.Playwright" Version="1.62.0" />
<PackageVersion Include="Microsoft.Web.WebView2" Version="1.0.4191.47" />
<PackageVersion Include="Microsoft.Windows.ImplementationLibrary" Version="1.0.260126.7" />
Expand All @@ -38,11 +38,11 @@
<PackageVersion Include="Serilog.Sinks.Async" Version="2.1.0" />
<PackageVersion Include="Serilog.Sinks.Console" Version="6.1.1" />
<PackageVersion Include="System.CommandLine" Version="2.0.11" />
<PackageVersion Include="TUnit" Version="1.65.68" />
<PackageVersion Include="TUnit.Assertions" Version="1.65.68" />
<PackageVersion Include="TUnit.Core" Version="1.65.68" />
<PackageVersion Include="TUnit.Mocks" Version="1.65.68" />
<PackageVersion Include="TUnit.Playwright" Version="1.65.68" />
<PackageVersion Include="bUnit" Version="2.9.0" />
<PackageVersion Include="TUnit" Version="1.66.27" />
<PackageVersion Include="TUnit.Assertions" Version="1.66.27" />
<PackageVersion Include="TUnit.Core" Version="1.66.27" />
<PackageVersion Include="TUnit.Mocks" Version="1.66.27" />
<PackageVersion Include="TUnit.Playwright" Version="1.66.27" />
<PackageVersion Include="bUnit" Version="2.10.3" />
</ItemGroup>
</Project>
6 changes: 5 additions & 1 deletion InfiniFrame.GitHubActions.Release.slnf
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,18 @@
"solution": {
"path": "InfiniFrame.slnx",
"projects": [
"src\\InfiniFrame.Application\\InfiniFrame.Application.csproj",
"src\\InfiniFrame\\InfiniFrame.csproj",
"src\\InfiniFrame.BlazorWebView\\InfiniFrame.BlazorWebView.csproj",
"src\\InfiniFrame.Blazor\\InfiniFrame.Blazor.csproj",
"src\\InfiniFrame.Js\\InfiniFrame.Js.csproj",
"src\\InfiniFrame.NativeBridge\\InfiniFrame.NativeBridge.csproj",
"src\\InfiniFrame.Security\\InfiniFrame.Security.csproj",
"src\\InfiniFrame.Shared\\InfiniFrame.Shared.csproj",
"src\\InfiniFrame.SingleFile\\InfiniFrame.SingleFile.csproj",
"src\\InfiniFrame.WebServer\\InfiniFrame.WebServer.csproj"
"src\\InfiniFrame.StaticAssets\\InfiniFrame.StaticAssets.csproj",
"src\\InfiniFrame.WebServer\\InfiniFrame.WebServer.csproj",
"src\\InfiniFrame.Window\\InfiniFrame.Window.csproj"
]
}
}
8 changes: 7 additions & 1 deletion InfiniFrame.GitHubActions.Testing.Automation.slnf
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,22 @@
"solution": {
"path": "InfiniFrame.slnx",
"projects": [
"src\\InfiniFrame.Application\\InfiniFrame.Application.csproj",
"src\\InfiniFrame\\InfiniFrame.csproj",
"src\\InfiniFrame.BlazorWebView\\InfiniFrame.BlazorWebView.csproj",
"src\\InfiniFrame.Blazor\\InfiniFrame.Blazor.csproj",
"src\\InfiniFrame.Js\\InfiniFrame.Js.csproj",
"src\\InfiniFrame.NativeBridge\\InfiniFrame.NativeBridge.csproj",
"src\\InfiniFrame.Security\\InfiniFrame.Security.csproj",
"src\\InfiniFrame.Shared\\InfiniFrame.Shared.csproj",
"src\\InfiniFrame.SingleFile\\InfiniFrame.SingleFile.csproj",
"src\\InfiniFrame.StaticAssets\\InfiniFrame.StaticAssets.csproj",
"src\\InfiniFrame.WebServer\\InfiniFrame.WebServer.csproj",
"src\\InfiniFrame.Window\\InfiniFrame.Window.csproj",

"tests\\InfiniTests\\InfiniTests.csproj",
"tests\\InfiniTests.TestSupport\\InfiniTests.TestSupport.csproj",
"tests\\InfiniTests.InfiniFrame.Application\\InfiniTests.InfiniFrame.Application.csproj",
"tests\\InfiniTests.InfiniFrame.Window\\InfiniTests.InfiniFrame.Window.csproj",
"tests\\InfiniAutomationTests\\InfiniAutomationTests.csproj",
"tests\\InfiniAutomationTests.WebApp\\InfiniAutomationTests.WebApp.csproj",
"tests\\InfiniAutomationTests.BlazorWebView.MudBlazor\\InfiniAutomationTests.BlazorWebView.MudBlazor.csproj",
Expand Down
9 changes: 7 additions & 2 deletions InfiniFrame.GitHubActions.Testing.slnf
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,22 @@
"solution": {
"path": "InfiniFrame.slnx",
"projects": [
"src\\InfiniFrame.Application\\InfiniFrame.Application.csproj",
"src\\InfiniFrame\\InfiniFrame.csproj",
"src\\InfiniFrame.BlazorWebView\\InfiniFrame.BlazorWebView.csproj",
"src\\InfiniFrame.Blazor\\InfiniFrame.Blazor.csproj",
"src\\InfiniFrame.Js\\InfiniFrame.Js.csproj",
"src\\InfiniFrame.NativeBridge\\InfiniFrame.NativeBridge.csproj",
"src\\InfiniFrame.Security\\InfiniFrame.Security.csproj",
"src\\InfiniFrame.Shared\\InfiniFrame.Shared.csproj",
"src\\InfiniFrame.SingleFile\\InfiniFrame.SingleFile.csproj",
"src\\InfiniFrame.StaticAssets\\InfiniFrame.StaticAssets.csproj",
"src\\InfiniFrame.WebServer\\InfiniFrame.WebServer.csproj",
"src\\InfiniFrame.Window\\InfiniFrame.Window.csproj",

"tests\\InfiniTests\\InfiniTests.csproj",
"tests\\InfiniTests.InfiniFrame\\InfiniTests.InfiniFrame.csproj",
"tests\\InfiniTests.TestSupport\\InfiniTests.TestSupport.csproj",
"tests\\InfiniTests.InfiniFrame.Application\\InfiniTests.InfiniFrame.Application.csproj",
"tests\\InfiniTests.InfiniFrame.Window\\InfiniTests.InfiniFrame.Window.csproj",
"tests\\InfiniTests.InfiniFrame.Blazor\\InfiniTests.InfiniFrame.Blazor.csproj",
"tests\\InfiniTests.InfiniFrame.BlazorWebView\\InfiniTests.InfiniFrame.BlazorWebView.csproj",
"tests\\InfiniTests.InfiniFrame.Js\\InfiniTests.InfiniFrame.Js.csproj",
Expand Down
9 changes: 7 additions & 2 deletions InfiniFrame.GitHubActions.slnf
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,22 @@
"solution": {
"path": "InfiniFrame.slnx",
"projects": [
"src\\InfiniFrame.Application\\InfiniFrame.Application.csproj",
"src\\InfiniFrame\\InfiniFrame.csproj",
"src\\InfiniFrame.BlazorWebView\\InfiniFrame.BlazorWebView.csproj",
"src\\InfiniFrame.Blazor\\InfiniFrame.Blazor.csproj",
"src\\InfiniFrame.Js\\InfiniFrame.Js.csproj",
"src\\InfiniFrame.NativeBridge\\InfiniFrame.NativeBridge.csproj",
"src\\InfiniFrame.Security\\InfiniFrame.Security.csproj",
"src\\InfiniFrame.Shared\\InfiniFrame.Shared.csproj",
"src\\InfiniFrame.SingleFile\\InfiniFrame.SingleFile.csproj",
"src\\InfiniFrame.StaticAssets\\InfiniFrame.StaticAssets.csproj",
"src\\InfiniFrame.WebServer\\InfiniFrame.WebServer.csproj",
"src\\InfiniFrame.Window\\InfiniFrame.Window.csproj",

"tests\\InfiniTests\\InfiniTests.csproj",
"tests\\InfiniTests.InfiniFrame\\InfiniTests.InfiniFrame.csproj",
"tests\\InfiniTests.TestSupport\\InfiniTests.TestSupport.csproj",
"tests\\InfiniTests.InfiniFrame.Application\\InfiniTests.InfiniFrame.Application.csproj",
"tests\\InfiniTests.InfiniFrame.Window\\InfiniTests.InfiniFrame.Window.csproj",
"tests\\InfiniTests.InfiniFrame.Blazor\\InfiniTests.InfiniFrame.Blazor.csproj",
"tests\\InfiniTests.InfiniFrame.BlazorWebView\\InfiniTests.InfiniFrame.BlazorWebView.csproj",
"tests\\InfiniTests.InfiniFrame.Js\\InfiniTests.InfiniFrame.Js.csproj",
Expand Down
Loading