Skip to content

[flutter_inappwebview] Fix SIGTRAP on TV app teardown - #1100

Merged
seungsoo47 merged 2 commits into
flutter-tizen:mainfrom
seungsoo47:flutter_inappwebview-tv-shutdown-fix2
Aug 25, 2026
Merged

[flutter_inappwebview] Fix SIGTRAP on TV app teardown#1100
seungsoo47 merged 2 commits into
flutter-tizen:mainfrom
seungsoo47:flutter_inappwebview-tv-shutdown-fix2

Conversation

@seungsoo47

Copy link
Copy Markdown
Contributor
  • Fix a SIGTRAP/SIGSEGV crash during app teardown on TV targets: ewk_init()/ewk_shutdown() were both commented out, but chromium-efl requires them to be called exactly once per process.
  • Add WebView::InitializeEngine()/ShutdownEngine(), called from the plugin's constructor/destructor. ShutdownEngine() waits (bounded, 2s) for all WebView instances to be disposed first, since ewk_shutdown() fatally CHECKs if any Ewk_View is still alive.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4211a8498d

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread packages/flutter_inappwebview/tizen/src/webview.cc Outdated
ewk_init() and ewk_shutdown() were both commented out, guessing that OS-level
EFL init and SetArguments() made ewk_init() unnecessary. In practice
chromium-efl needs ewk_init()/ewk_shutdown() called exactly once per process:
without ewk_init(), some engine state assumed initialized elsewhere is never
set up, and on TV targets this surfaces as a SIGTRAP/SIGSEGV during app
teardown.

Call ewk_init() once from the plugin's constructor and ewk_shutdown() once
from its destructor, via new WebView::InitializeEngine()/ShutdownEngine()
static helpers. ShutdownEngine() waits (bounded, 2s) for the live WebView
instance set to drain first, since ewk_shutdown() fatally CHECKs if any
Ewk_View is still alive; normal teardown order (platform views destroyed
before the plugin) already guarantees this, so the wait is defensive only.

Verified with 3 clean drive runs each on the TV emulator and a real TV
device, with no crash and no crash dumps.
@seungsoo47
seungsoo47 force-pushed the flutter_inappwebview-tv-shutdown-fix2 branch from 4211a84 to 556a9f1 Compare August 25, 2026 06:39
@seungsoo47
seungsoo47 requested a review from JSUYA August 25, 2026 07:03
@seungsoo47
seungsoo47 merged commit 4c08292 into flutter-tizen:main Aug 25, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants