Skip to content

Conversation

@leaanthony
Copy link
Member

@leaanthony leaanthony commented Dec 16, 2025

Summary

  • Disable suppressesIncrementalRendering on macOS 26+ (Tahoe) to prevent WebView crashes during rapid UI updates
  • Older macOS versions retain the original behavior

Test plan

  • Test on macOS 26 (Tahoe) with rapid UI updates
  • Verify no regression on older macOS versions

Fixes #4592

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Bug Fixes
    • Fixed WebView crash on macOS 26 (Tahoe) occurring during rapid UI updates

✏️ Tip: You can customize this high-level summary in your review settings.

Disable suppressesIncrementalRendering on macOS 26+ (Tahoe) to prevent
WebView crashes when the frontend performs frequent UI updates.

Fixes #4592

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@github-actions github-actions bot added Documentation Improvements or additions to documentation MacOS v2-only labels Dec 16, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 16, 2025

Walkthrough

This PR fixes a WebView crash occurring on macOS 26 during rapid UI updates by conditionally disabling incremental rendering for that macOS version. A changelog entry documents the fix.

Changes

Cohort / File(s) Summary
macOS WebView Configuration
v2/internal/frontend/desktop/darwin/WailsContext.m
Added macOS version gate for suppressesIncrementalRendering setting: disabled on macOS 26.0+, enabled on earlier versions to prevent WebView crashes during frequent UI updates
Documentation
website/src/pages/changelog.mdx
Added Fixed changelog entry documenting the macOS 26 WebView crash resolution

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

  • Verify the macOS version constant (26.0) is correctly referenced and compared
  • Ensure the conditional logic properly handles both branches (macOS 26.0+ and earlier)

Suggested labels

Bug, size:M

Suggested reviewers

  • makew0rld

Poem

🐰 A hop and a skip on Tahoe's new shore,
Where WebViews once crashed, but now crash no more!
Incremental rendering, now version-aware,
Swift UI updates dance through the air! ✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description is incomplete. It lacks required template sections: Type of change checkbox selection, How Has This Been Tested section with test configuration, and most checklist items remain unchecked. Complete all required template sections including Type of change, testing details with wails doctor output, and check the relevant checklist items before merging.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main change: preventing a WebView crash on macOS 26 during rapid UI updates, which directly aligns with the changeset.
Linked Issues check ✅ Passed The code changes directly address issue #4592 by implementing the fix to disable suppressesIncrementalRendering on macOS 26+ while preserving older behavior, aligning with all stated objectives.
Out of Scope Changes check ✅ Passed All changes are in scope: WailsContext.m implements the macOS version-gated fix, and changelog.mdx documents the fix, both directly addressing the linked issue.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/v2-macos26-webview-crash

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ebe8de8 and 12b9f3a.

📒 Files selected for processing (2)
  • v2/internal/frontend/desktop/darwin/WailsContext.m (1 hunks)
  • website/src/pages/changelog.mdx (1 hunks)
🧰 Additional context used
🧠 Learnings (5)
📓 Common learnings
Learnt from: leaanthony
Repo: wailsapp/wails PR: 4534
File: v3/examples/liquid-glass/README.md:44-46
Timestamp: 2025-08-24T03:55:43.103Z
Learning: macOS 26 is the version that introduces native NSGlassEffectView support for Liquid Glass effects, representing a new internal/development versioning scheme beyond the publicly documented macOS 15 Sequoia.
📚 Learning: 2025-12-13T19:52:13.812Z
Learnt from: leaanthony
Repo: wailsapp/wails PR: 4783
File: v3/pkg/events/events.go:72-100
Timestamp: 2025-12-13T19:52:13.812Z
Learning: In Wails v3, the linux:WindowLoadChanged event was intentionally removed as a breaking change and replaced with four granular WebKit2 load events: linux:WindowLoadStarted, linux:WindowLoadRedirected, linux:WindowLoadCommitted, and linux:WindowLoadFinished. Users should migrate to linux:WindowLoadFinished for detecting when the WebView has finished loading.

Applied to files:

  • website/src/pages/changelog.mdx
  • v2/internal/frontend/desktop/darwin/WailsContext.m
📚 Learning: 2025-03-23T00:41:39.612Z
Learnt from: popaprozac
Repo: wailsapp/wails PR: 4098
File: v3/pkg/services/notifications/notifications_darwin.go:39-46
Timestamp: 2025-03-23T00:41:39.612Z
Learning: For the macOS notifications implementation in Wails, an early panic is used when the bundle identifier check fails rather than returning an error, because the Objective-C code would crash later anyway. The panic provides clear instructions to developers about bundling and signing requirements.

Applied to files:

  • v2/internal/frontend/desktop/darwin/WailsContext.m
📚 Learning: 2025-08-08T09:13:16.916Z
Learnt from: APshenkin
Repo: wailsapp/wails PR: 4480
File: v2/internal/frontend/desktop/darwin/message.h:17-19
Timestamp: 2025-08-08T09:13:16.916Z
Learning: In Wails v2 bindings origin verification, processBindingMessage intentionally has different signatures across platforms: Darwin includes an isMainFrame bool (WKWebKit provides it), Linux uses two params (message, source) as WebKitGTK doesn’t expose main-frame info there, and Windows handles origin checks in Go via WebView2 sender/args without a C bridge. This divergence is acceptable/expected per maintainer (APshenkin).

Applied to files:

  • v2/internal/frontend/desktop/darwin/WailsContext.m
📚 Learning: 2025-08-24T03:55:43.103Z
Learnt from: leaanthony
Repo: wailsapp/wails PR: 4534
File: v3/examples/liquid-glass/README.md:44-46
Timestamp: 2025-08-24T03:55:43.103Z
Learning: macOS 26 is the version that introduces native NSGlassEffectView support for Liquid Glass effects, representing a new internal/development versioning scheme beyond the publicly documented macOS 15 Sequoia.

Applied to files:

  • v2/internal/frontend/desktop/darwin/WailsContext.m
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
  • GitHub Check: Run Go Tests (ubuntu-22.04, 1.23)
  • GitHub Check: Run Go Tests (macos-latest, 1.23)
  • GitHub Check: Run Go Tests (ubuntu-24.04, 1.23)
  • GitHub Check: Run Go Tests (windows-latest, 1.23)
  • GitHub Check: semgrep/ci
  • GitHub Check: semgrep-cloud-platform/scan
  • GitHub Check: Cloudflare Pages
🔇 Additional comments (2)
website/src/pages/changelog.mdx (1)

19-19: LGTM!

The changelog entry is well-formatted, clearly describes the fix, and provides proper attribution and issue traceability.

v2/internal/frontend/desktop/darwin/WailsContext.m (1)

218-224: Good fix with clear documentation.

The implementation is surgical and preserves backward compatibility by only changing behavior on macOS 26+. The comment clearly explains the rationale and references the issue. The version format X.Y is correct, and macOS 26 is confirmed as a real version in use within the codebase.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@cloudflare-workers-and-pages
Copy link

Deploying wails with  Cloudflare Pages  Cloudflare Pages

Latest commit: 12b9f3a
Status: ✅  Deploy successful!
Preview URL: https://3633ac99.wails.pages.dev
Branch Preview URL: https://fix-v2-macos26-webview-crash.wails.pages.dev

View logs

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

Labels

Documentation Improvements or additions to documentation MacOS v2-only

2 participants