Skip to content

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

Open
seungsoo47 wants to merge 2 commits into
flutter-tizen:masterfrom
seungsoo47:flutter_inappwebview-tv-shutdown-fix
Open

[flutter_inappwebview] Fix SIGTRAP on TV app teardown#1084
seungsoo47 wants to merge 2 commits into
flutter-tizen:masterfrom
seungsoo47:flutter_inappwebview-tv-shutdown-fix

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.

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

Copy link
Copy Markdown
Contributor Author

This branch bumps flutter_inappwebview_tizen to 0.1.2, since it was branched from master before #1083 merged. Once #1083 merges, I'll rebase this branch and bump the version past 0.2.0 (e.g. 0.2.1) instead of 0.1.2.

@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: 4901c942de

ℹ️ 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
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.

1 participant