Skip to content

v0.1.0-alpha.2

Pre-release
Pre-release

Choose a tag to compare

@wieslawsoltes wieslawsoltes released this 16 Mar 06:52
· 96 commits to main since this release
666724b

NativeWebView 0.1.0-alpha.2

Generated from changelog fragments in changelog/fragments.

Added

  • Reworked NativeWebView.Sample.Desktop into an Avalonia desktop feature explorer that hosts the NativeWebView control and exposes navigation, script execution, web messaging, printing, focus movement, cookie/command manager checks, dialog operations, and authentication broker actions.
  • Added cross-platform diagnostics reporting API and JSON report sample CLI.
  • Added diagnostics markdown formatter for human-readable platform status summaries.
  • Added blocking diagnostics baseline parsing, comparison, and regression reporting APIs.
  • Added stale-baseline and baseline-update status flags for diagnostics regression results.
  • Added scripts/update-blocking-baseline.sh to regenerate blocking diagnostics baselines.
  • Added regression evaluation API with machine-readable gate policy outcomes and effective exit code.
  • Added gate failure classification fields in regression evaluation (failingGates, primaryFailingGate).
  • Added scripts/validate-diagnostics-exit-code-contract.sh for automated gate exit-code contract conformance checks.
  • Added gate evaluation markdown formatter and --comparison-evaluation-markdown-output diagnostics option.
  • Added structured gate failure metadata (gateFailures) to diagnostics regression evaluation outputs.
  • Added deterministic diagnostics regression evaluation fingerprint metadata for cross-run artifact correlation.
  • Added diagnostics evaluation fingerprint schema version metadata (fingerprintVersion).
  • Added repository diagnostics fingerprint baseline (ci/baselines/diagnostics-fingerprint-baseline.txt) for conformance contract gating.
  • Added scripts/update-diagnostics-fingerprint-baseline.sh helper for deterministic fingerprint baseline refresh.
  • Added fingerprint baseline drift comparison artifacts (fingerprint-baseline-comparison.json, fingerprint-baseline-comparison.md) to diagnostics conformance runs.
  • Added machine-readable diagnostics conformance summary artifact (exit-code-contract-summary.json) with per-scenario expected/actual exit-code outcomes and fingerprints.
  • Implemented the embedded Android NativeWebView control runtime with backend-owned child View attachment, android.webkit.WebView hosting, JS messaging, new-window interception, zoom control support, and synthetic composited frame capture.
  • Implemented the embedded Browser NativeWebView control runtime with Avalonia Browser native hosting, a real DOM iframe, same-origin DOM/script bridging, message roundtrips, and synthetic render-frame capture support.
  • Implemented real NativeWebDialog runtime paths on Windows and Linux by hosting the existing WebView2/WebKitGTK runtimes inside native desktop dialog windows.
  • Replaced WebAuthenticationBroker stubs with real runtime-backed authentication flows on Windows, macOS, Linux, iOS, Android, and Browser.
  • Added NativeWebViewProxyPlatformSupportMatrix so applications can inspect the real platform capability and current repo support level for proxy configuration.
  • Added NativeWebViewWindowsProxyArgumentsBuilder and NativeWebViewLinuxProxySettingsBuilder to translate shared proxy options into WebView2/WebKitGTK-style configuration payloads for future or custom integrations.
  • Added NativeWebView.InstanceConfiguration so each hosted control instance can seed its own environment and controller defaults before initialization.
  • Extended NativeWebViewEnvironmentOptions with proxy, cache, cookie, and session directory settings for per-instance browser state configuration.
  • Added regression coverage proving multiple NativeWebView controls can initialize from a shared template without leaking configuration across instances.
  • Added real per-instance proxy application for macOS NativeWebView and NativeWebDialog instances using dedicated WKWebsiteDataStore proxy configurations on macOS 14+.
  • Added NativeWebViewFeature.ProxyConfiguration and proxy resolution helpers so runtime support can be surfaced explicitly.
  • Added coverage for proxy parsing, platform support surfacing, and dialog instance-configuration forwarding.
  • Introduced a platform implementation status matrix so callers can distinguish current repo runtime support from broader backend capability contracts.
  • Implemented the embedded Windows NativeWebView control runtime with WebView2 child hosting, real native handles, and per-instance proxy application through AdditionalBrowserArguments.
  • Implemented the embedded Linux NativeWebView control runtime with GTK3/WebKitGTK child hosting on X11, real native handles, and per-instance proxy application through WebsiteDataManager.

Changed

  • Preserved deterministic backend contract checks by moving matrix logic into DesktopSampleSmokeRunner and adding --smoke mode.
  • Updated desktop smoke script to run sample in smoke mode (dotnet run ... -- --smoke) while default sample run launches the interactive Avalonia UI.
  • Extended diagnostics sample and wrapper script with markdown summary output support.
  • Extended diagnostics sample/script with baseline regression-gating options and outputs.
  • Extended diagnostics sample/script with --require-baseline-sync gating for resolved baseline entries.
  • Extended diagnostics sample/script with --comparison-json-output artifact generation.
  • Added gate-specific diagnostics exit code contract (10 require-ready, 11 regression, 12 baseline-sync, 13 multiple).
  • Updated diagnostics CLI to return evaluation-derived gate-specific exit codes.
  • Published exit-code contract conformance summaries to CI workflow summary output.
  • Extended diagnostics wrapper/conformance scripts to generate and validate gate evaluation markdown artifacts.
  • Appended gate evaluation markdown to generated release notes and release diagnostics artifacts.
  • Unified gate failure messages/recommendations across JSON output, markdown formatter, and CLI error reporting.
  • Extended diagnostics scripts and conformance automation to enforce structured gate failure metadata contract.
  • Extended diagnostics wrapper and conformance scripts to validate fingerprint presence and format.
  • Updated gate evaluation markdown to include fingerprint summary output.
  • Enforced JSON/markdown fingerprint parity checks in diagnostics wrapper and exit-code conformance scripts.
  • Extended conformance markdown summary with per-scenario fingerprint values.
  • Extended diagnostics exit-code conformance script with optional fingerprint baseline enforcement and current fingerprint artifact output.
  • Updated conformance mismatch handling to evaluate all scenarios and fail after complete expected/actual drift reporting is written.
  • Release notes append flow now includes exit-code conformance summary and fingerprint baseline comparison markdown.
  • Extended conformance summary contract to include fingerprint baseline gate metadata (enabled, match status, mismatch count, comparison artifact paths).
  • Added summary JSON contract validation checks in validate-diagnostics-exit-code-contract.sh.
  • Added CI quality gate and sample smoke checks to workflows.

Fixed

  • Guarded diagnostics reporter against empty platform selection to prevent misleading ready reports.
  • Hardened wrapper argument validation for comparison output options that require a baseline file.
  • Corrected runtime status, diagnostics, and documentation so Android is reported as an implemented embedded control target while per-instance proxy configuration remains app-wide and unsupported on Android.
  • Corrected implementation status, diagnostics, and documentation so Browser is reported as an implemented embedded control target while per-instance proxy support remains unsupported.
  • Updated the platform implementation-status matrix, docs, and tests so dialog/auth support is reported as runtime-implemented where the repo now ships real native paths.
  • Corrected platform status documentation and diagnostics so Windows, macOS, and Linux are reported as implemented embedded control targets and iOS becomes the next bring-up phase.

Docs

  • Added desktop sample run instructions to README and quickstart documentation.
  • Added diagnostics report documentation and quickstart/release workflow updates.
  • Updated diagnostics, quickstart, and CI/release docs for markdown artifact workflows.
  • Documented baseline comparison workflow and artifact outputs for diagnostics reporting.
  • Documented baseline refresh workflow and stale-baseline policy updates.
  • Documented comparison JSON output and gate-audit workflow updates.
  • Documented diagnostics exit code contract.
  • Documented local/pipeline exit-code conformance validation commands.
  • Documented gateFailures fields for diagnostics report consumers.
  • Documented fingerprint contract in diagnostics and CI/release documentation.
  • Updated diagnostics/CI documentation for fingerprint version and parity contract requirements.
  • Updated diagnostics, CI/release, quickstart, prerequisites, and README documentation for fingerprint drift artifacts.
  • Updated diagnostics/CI/quickstart/prerequisites/README docs for machine-readable conformance summary usage.
  • Added quickstart, API, interop, platform, and CI/release documentation pages.
  • Documented the new support-matrix API and the Windows/Linux proxy translation helpers.
  • Updated README, quickstart, rendering/options docs, and the desktop sample to show per-instance configuration usage.
  • Documented the actual per-instance proxy support matrix across macOS, Windows, Linux, iOS, Android, and Browser targets.

CI

  • Added CI and release diagnostics artifact generation and publishing.
  • Published diagnostics markdown summaries in CI step output and release notes pipelines.
  • Enforced blocking diagnostics baseline regression checks in CI/release workflows.
  • Enforced baseline-sync hygiene in CI/release diagnostics gates.
  • Added regression evaluation JSON artifacts to CI/release diagnostics publication and release attachments.
  • Added exit-code contract validation step and artifacts to CI/release workflows.
  • Published gate evaluation markdown in CI workflow summary and diagnostics artifact bundle.
  • CI/release conformance steps now enforce fingerprint baseline drift checks.
  • CI workflow summary now includes fingerprint baseline drift comparison markdown when fingerprint gating is enabled.
  • Added cross-platform build/test workflow with packaging artifacts.
  • Added release workflow with tag-based package versioning and NuGet publishing.

Packaging

  • Added NuGet pack metadata, symbol packages, and package readme/license inclusion.

Platform Diagnostics Summary

Generated (UTC): 2026-03-16 06:53:32Z
Warnings As Errors: False
Overall Ready: True
Platforms: 6, Issues: 10, Blocking: 0

Platform Ready Provider Registered Warnings Errors Blocking
Windows True WindowsPlatformDiagnostics True 1 0 0
MacOS True MacOSPlatformDiagnostics True 1 0 0
Linux True LinuxPlatformDiagnostics True 2 0 0
IOS True IOSPlatformDiagnostics True 2 0 0
Android True AndroidPlatformDiagnostics True 2 0 0
Browser True BrowserPlatformDiagnostics True 2 0 0

Windows

  • [Warning] windows.host.mismatch: Windows backend diagnostics are running on a non-Windows host. Recommendation: Run this diagnostic on Windows to validate native runtime requirements.

MacOS

  • [Warning] macos.host.mismatch: macOS backend diagnostics are running on a non-macOS host. Recommendation: Run this diagnostic on macOS to validate WKWebView prerequisites.

Linux

  • [Warning] linux.webkitgtk.version.unset: NATIVEWEBVIEW_WEBKITGTK_VERSION is not set. Recommendation: Set this environment variable in CI or startup diagnostics (expected >= 4.1).
  • [Warning] linux.display.missing: DISPLAY/WAYLAND_DISPLAY is not set. Recommendation: Set a graphical session variable when running non-headless UI flows.

IOS

  • [Warning] ios.control.contract_only: iOS currently registers the NativeWebView control contract, but this build does not include the Apple-workload-targeted embedded control runtime. Recommendation: Build the iOS-targeted backend assembly and check NativeWebViewPlatformImplementationStatusMatrix before shipping embedded control support.
  • [Warning] ios.host.mismatch: iOS backend diagnostics are running on a non-iOS host. Recommendation: Run this diagnostic on iOS to validate device/runtime prerequisites.

Android

  • [Warning] android.control.contract_only: Android currently registers the NativeWebView control contract, but this build does not include the workload-targeted embedded control runtime. Recommendation: Build the Android-targeted backend assembly and check NativeWebViewPlatformImplementationStatusMatrix before shipping embedded control support.
  • [Warning] android.host.mismatch: Android backend diagnostics are running on a non-Android host. Recommendation: Run this diagnostic on Android/emulator to validate runtime prerequisites.

Browser

  • [Warning] browser.control.contract_only: Browser currently registers the NativeWebView control contract, but this build does not include the browser-targeted embedded control runtime. Recommendation: Build the browser-targeted backend assembly and check NativeWebViewPlatformImplementationStatusMatrix before shipping embedded control support.
  • [Warning] browser.host.mismatch: Browser backend diagnostics are running on a non-browser host. Recommendation: Run this diagnostic in WASM/browser runtime for accurate validation.

Blocking Diagnostics Regression Comparison

Baseline Blocking Issues: 0
Current Blocking Issues: 0
New Blocking Issues: 0
Resolved Blocking Issues: 0
Has Regression: False
Has Stale Baseline: False
Requires Baseline Update: False

New Blocking Issues

  • None

Resolved Blocking Issues

  • None

Blocking Diagnostics Gate Evaluation

Generated At (UTC): 2026-03-16T06:53:32.5875584+00:00
Warnings As Errors: False
Require Ready: False
Fail On Regression: True
Require Baseline Sync: True
Is Ready: True
Has Comparison: True
Has Regression: False
Has Stale Baseline: False
Requires Baseline Update: False
Has Multiple Gate Failures: False
Primary Failing Gate: None
Effective Exit Code: 0
Fingerprint Version: 1
Fingerprint: dae4cc50fd2d7b55199c5952924dccc104dec56bcddab15eecce7d3d181f3d72

Comparison Snapshot

Baseline Blocking Issues: 0
Current Blocking Issues: 0
New Blocking Issues: 0
Resolved Blocking Issues: 0

Failing Gates

  • None

Diagnostics Exit Code Contract Validation

Case Expected Actual Pass Fingerprint
pass 0 0 true dae4cc50fd2d7b55199c5952924dccc104dec56bcddab15eecce7d3d181f3d72
require-ready 10 10 true 03d9b81c3aa9552b112c6a09db1d63eb82fe8e2382067da3059d5739ce4962fd
regression 11 11 true 30d8229a49f75cdc69d5cde87c69c07eeb3916c0f6bafcdc0c377ce81a5bee1b
baseline-sync 12 12 true 38e965a2980a20bb7a1b405f3419835034bb68e180537205d11c2c69815557c6
multi-gate 13 13 true f8148d25dc833a59ccafad834fbce57af14c7062bbc3627e1fb70c878cec6590

Diagnostics Fingerprint Baseline Comparison

Baseline: ci/baselines/diagnostics-fingerprint-baseline.txt
Current: artifacts/diagnostics/exit-code-contract-0.1.0-alpha.2/fingerprint-current.txt
All Matched: true
Mismatch Count: 0

Scenario Expected Actual Matched
pass dae4cc50fd2d7b55199c5952924dccc104dec56bcddab15eecce7d3d181f3d72 dae4cc50fd2d7b55199c5952924dccc104dec56bcddab15eecce7d3d181f3d72 true
require-ready 03d9b81c3aa9552b112c6a09db1d63eb82fe8e2382067da3059d5739ce4962fd 03d9b81c3aa9552b112c6a09db1d63eb82fe8e2382067da3059d5739ce4962fd true
regression 30d8229a49f75cdc69d5cde87c69c07eeb3916c0f6bafcdc0c377ce81a5bee1b 30d8229a49f75cdc69d5cde87c69c07eeb3916c0f6bafcdc0c377ce81a5bee1b true
baseline-sync 38e965a2980a20bb7a1b405f3419835034bb68e180537205d11c2c69815557c6 38e965a2980a20bb7a1b405f3419835034bb68e180537205d11c2c69815557c6 true
multi-gate f8148d25dc833a59ccafad834fbce57af14c7062bbc3627e1fb70c878cec6590 f8148d25dc833a59ccafad834fbce57af14c7062bbc3627e1fb70c878cec6590 true

NuGet Package Validation

Version: 0.1.0-alpha.2

Package .nupkg .snupkg Contents Metadata Dependencies
NativeWebView Yes Yes Yes Yes Yes
NativeWebView.Core Yes Yes Yes Yes Yes
NativeWebView.Dialog Yes Yes Yes Yes Yes
NativeWebView.Auth Yes Yes Yes Yes Yes
NativeWebView.Interop Yes Yes Yes Yes Yes
NativeWebView.Platform.Windows Yes Yes Yes Yes Yes
NativeWebView.Platform.macOS Yes Yes Yes Yes Yes
NativeWebView.Platform.Linux Yes Yes Yes Yes Yes
NativeWebView.Platform.iOS Yes Yes Yes Yes Yes
NativeWebView.Platform.Android Yes Yes Yes Yes Yes
NativeWebView.Platform.Browser Yes Yes Yes Yes Yes