Skip to content

Unit 5: Maintained WebView samples and cross-host integration matrix - #665

Draft
mattleibow wants to merge 1 commit into
mattleibow-generic-webview-layoutfrom
mattleibow-webview-sample-matrix
Draft

mattleibow wants to merge 1 commit into
mattleibow-generic-webview-layoutfrom
mattleibow-webview-sample-matrix

Conversation

@mattleibow

@mattleibow mattleibow commented Oct 9, 2026 •

Copy link
Copy Markdown
Member

Summary

Add maintained sample pages and repeatable integration coverage for standard WebView, packaged HybridWebView and mixed standard/Hybrid/Blazor hosts.

  • Include native reset/recreation controls, an unnamed host and duplicate AutomationIds to exercise real owner correlation and isolation.
  • Use actual input/click/component events, original Hybrid ready/ack and .NET-JavaScript messaging, console markers and measurable DOM/native clipping fixtures.
  • Add 24 integration cases for canonical readiness/selection, source/evaluation/actions/native PNGs, navigation/reload/recreation, errors, hidden registrations, layout scope and native revision stability.
  • Add a disposable concurrent loopback HTTP fixture for real standard root-relative navigation. Restore the self-contained document before shutdown; Hybrid navigation uses packaged resources.
  • Register routes through an optional AppShell.xaml.cs hook so linked AppKit/GTK/WPF Shells retain their existing routes without compiling these pages. Registration remains Debug-only and exercises idempotency.

The production changes are limited to sample pages/resources/registration and their usage documentation; the remaining changes are integration tests and the owned HTTP fixture.

Validation

On the rebuilt Mac Catalyst sample, the maintained matrix passes 44/44: 24 new generic cases, the complete current 17-case WebViewTests class, two native cases and a native layout baseline. Real CLI and stdio MCP calls verify selected source/evaluation/input, useful errors, failure exits and six decoded, nonblank, owner-sized native PNGs. Additional native checks verify exact input/change counts, real Blazor component state, Hybrid messaging and DOM inclusion/exclusion. Sample/integration graphs and portable Client build successfully.

Five complete WebViewTests repetitions are 17/17, 17/17, 16/17, 17/17, 17/17. The retained failure occurs in native snapshot reading while navigating to the multi-Blazor page, before selected filling; screenshots pass all five. No retry-away, weakened assertion or native-capture change is used.

The expanded selection totals 613 passed, 12 failed, 1 skipped. Besides that native read failure, 11 optional consumers fail before requests when their fake listener binds 127.0.0.9 on this Mac; a separately configured Layout QA journey is skipped. No full-green claim is made. Evidence covers Mac Catalyst and Chromium, not Android/iOS/Windows/AppKit/native GTK/WPF/net472 or physical devices. Owned helpers are stopped.

Related: #621, #232, #407, #654. These are regression/context links, not claims to resolve the original timing, intermittent screenshot/native-crash or broader documentation issues.

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Expert Code Review — PR #665

Methodology: 2 independent reviewers (1 failed — reduced coverage, no tiebreaker) with adversarial consensus.

Result: 0 findings achieved consensus; no inline comments were posted. 3 findings were raised by an individual reviewer but none achieved the required 2/2 consensus.

Discarded findings:

  • GenericWebViewTests.cs: possible GTK failures because the new routes and generic adapter are not compiled into the linked GTK sample.
  • GenericWebViewTests.cs: possible iOS failures from unconditional WebView screenshot assertions despite the existing unsupported-capture behavior.
  • WebViewTestPages.cs: possible null dereference if Send to Hybrid is tapped before mixed-host initialization completes or after restoration fails.

CI status: 13 checks succeeded and 3 were still in progress at review time; no failures were reported.

Test coverage: The PR adds 24 integration cases covering the new standard, Hybrid, mixed-host, navigation, messaging, screenshot, console, recreation, and layout behavior. The PR description also reports focused local matrix coverage; CI was not yet complete.

Generated by Expert Code Review · 2 independent reviewers with adversarial consensus

Generated by Expert Code Review (auto) for #665 · copilot · gpt56 · 216.3 AIC · ⌖ 12.3 AIC · ⊞ 37.7K · ◷

@mattleibow
mattleibow added this pull request to stack #668 October 12, 2026 15:20
@mattleibow
mattleibow marked this pull request as draft October 12, 2026 15:22
@mattleibow
mattleibow force-pushed the mattleibow-webview-sample-matrix branch from 368e369 to d1321cd Compare October 12, 2026 20:46
@mattleibow
mattleibow removed this pull request from stack #668 October 12, 2026 20:58
@mattleibow
mattleibow added this pull request to stack #675 October 12, 2026 21:04
@mattleibow

Copy link
Copy Markdown
Member Author

Consolidation is complete. This remains a draft PR above #664, at head d1321cd30586109f9ba5ca4b64808936d0f79d02. The single native stack preserves these review units, bottom-to-top:

#671 -> #674 -> #673 -> #672 -> #669 -> #670 -> #661 -> #662 -> #664 -> #665.

Superseded bundles #660 and #655 are closed without merging. All ten replacements remain draft for individual full review; no implementation PR was marked ready or merged.

Fresh complete-graph evidence: the maintained Mac Catalyst matrix passes 44/44; actual CLI and stdio MCP exercise selected source, evaluation, native PNGs, input/readback, original Hybrid messaging, navigation/reload, generic layout inclusion/exclusion and failure exits. The focused Agent/CLI/portable Client, managed GTK startup and Chromium consumer selections pass. This sample layer is the unchanged nine-file patch; lower fixes were not replayed or bundled back into it.

Limits retained for review: five whole WebViewTests class runs were 17/17, 17/17, 16/17, 17/17, 17/17. The one failure occurs in native UI snapshot reading during navigation, before selected filling; the screenshot case passes all five. Eleven optional consumer tests fail before requests when their fake listener binds 127.0.0.9 on this Mac. One separately configured Layout QA journey is skipped. The expanded selection totals 613 passed, 12 failed, 1 skipped; no full-green, screenshot-flake/native-crash cure, or untested-platform claim. Original logs and reproduction evidence are retained.

Exercise standard, Hybrid and Blazor hosts independently and together with real state, original messaging, navigation, native captures and DOM layout diagnostics. Keep linked backend Shells unchanged through optional sample-page registration.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: fdd755ff-5a3d-4198-9b31-408f603c0442
@mattleibow
mattleibow force-pushed the mattleibow-webview-sample-matrix branch from 54b5df4 to 6bad880 Compare October 15, 2026 03:14

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

DevFlow Issues or PRs that have to do with DevFlow

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants