[webview_flutter_tizen] Update webview_flutter to 4.14.1 - #1153
Open
seungsoo47 wants to merge 5 commits into
Open
seungsoo47 wants to merge 5 commits into
seungsoo47 wants to merge 5 commits into
Conversation
…ersion DefaultBackendForPlatform() read the TIZEN_API_VERSION environment variable, which carries the api-version the application declares in its tizen-manifest.xml, not the platform version of the device. Every example app in this repository declares 6.0, so the EWK backend was selected on every device regardless of its Tizen version; a Tizen 10.1 target that should have used the WV wrapper backend ran EWK instead. Read the platform version from system-info instead, following the same pattern webview_flutter_lwe and device_info_plus already use. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
WvWebViewBackend::LoadUrlRequest built an Eina_Hash and passed it to wv_view_url_request_set, whose local typedef declared the parameter as an untyped void*. The WV library iterates that pointer as a GHashTable, so the compiler accepted the mismatch and the library walked an unrelated structure: request headers were never delivered, and the walk corrupted heap metadata, aborting the application later with "malloc_consolidate(): unaligned fastbin chunk detected". Build a GHashTable and declare the parameter as GHashTable* so the same mismatch cannot recur silently. The unused Eina.h and Evas.h includes are dropped with it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The WV function signatures are re-declared locally because the plugin reaches them through dlsym, and dlsym validates nothing. Comparing every bound symbol against the platform headers turned up two divergences besides the request header type: * wv_key_event_s was missing its trailing const char* device_name member, so wv_view_send_key_event read past the end of the stack-allocated struct. This is latent today because only the WV standalone path reads that field. * Nine function pointers declared an int return where the API returns bool or void. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The cookie method channel was created as a local in the WebView constructor and destroyed when the constructor returned, while the handler it installed on the messenger captured the WebView and outlived it. Nothing ever cleared that handler, and the channel name carried no view id, so a second WebView silently replaced the first one's handler and a cookie call after the last WebView was disposed reached freed memory. Register the channel once in the plugin, clear its handler in the plugin destructor, and route calls to the current WebView. ClearCookies gains a view check in both backends: the backend view is created lazily on the first WebView method call, so a cookie call that arrives before it passed a null view into the engine. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Update webview_flutter to 4.14.1 and webview_flutter_platform_interface to 2.15.1, raising the minimum supported SDK to Flutter 3.38/Dart 3.10. The only API added between 4.13.1 and 4.14.1 is WebViewCookieManager.getCookies. It throws UnimplementedError for now: the EWK cookie API returns nothing because of an engine defect being fixed, and the WV counterpart is not exported by the platform library. The example app follows upstream and lists cookies through getCookies rather than reading document.cookie. loadFileWithParams, added in platform_interface 2.14.0, needs no implementation: its base delegates to loadFile, which this package already provides. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fe925abd8e
ℹ️ 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".
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
#1135