diff --git a/packages/webview_flutter_lwe/CHANGELOG.md b/packages/webview_flutter_lwe/CHANGELOG.md index 5f910698e..40c6806e5 100644 --- a/packages/webview_flutter_lwe/CHANGELOG.md +++ b/packages/webview_flutter_lwe/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.5.3 + +* Update lightweight web engine (1.5.1). + ## 0.5.2 * Update lightweight web engine (1.4.1). diff --git a/packages/webview_flutter_lwe/README.md b/packages/webview_flutter_lwe/README.md index 6dda7a95a..6c2725520 100644 --- a/packages/webview_flutter_lwe/README.md +++ b/packages/webview_flutter_lwe/README.md @@ -21,7 +21,7 @@ This package is not an _endorsed_ implementation of `webview_flutter`. Therefore ```yaml dependencies: webview_flutter: ^4.13.1 - webview_flutter_lwe: ^0.5.2 + webview_flutter_lwe: ^0.5.3 ``` ## Example diff --git a/packages/webview_flutter_lwe/pubspec.yaml b/packages/webview_flutter_lwe/pubspec.yaml index b60f4a00d..bc344b904 100644 --- a/packages/webview_flutter_lwe/pubspec.yaml +++ b/packages/webview_flutter_lwe/pubspec.yaml @@ -2,7 +2,7 @@ name: webview_flutter_lwe description: Tizen implementation of the webview_flutter plugin backed by Lightweight Web Engine. homepage: https://github.com/flutter-tizen/plugins repository: https://github.com/flutter-tizen/plugins/tree/master/packages/webview_flutter_lwe -version: 0.5.2 +version: 0.5.3 environment: sdk: ^3.8.0 diff --git a/packages/webview_flutter_lwe/tizen/inc/lwe/LWEWebView.h b/packages/webview_flutter_lwe/tizen/inc/lwe/LWEWebView.h index 2e3edc137..d577f41f3 100644 --- a/packages/webview_flutter_lwe/tizen/inc/lwe/LWEWebView.h +++ b/packages/webview_flutter_lwe/tizen/inc/lwe/LWEWebView.h @@ -42,6 +42,39 @@ using LWEDelegateRef = std::unique_ptr>; namespace LWE { +/** + * \brief Initialize option bit-flags that can be combined with the | operator. + * + * Pass to LWE::Initialize to prefer specific runtime behaviors. + */ +enum class InitializeOption : uint32_t { + None = 0, + /** + * \brief Prefer running LWE on a separate thread instead of the process + * main thread. Some backends (e.g., flutter, uv_cairo_gl) always use a + * separate thread regardless of this flag. + */ + PreferSeparateThread = 1 << 0, + /** + * \brief Prefer using incremental garbage collection if the GC supports it. + */ + PreferIncrementalGC = 1 << 1, +}; + +inline InitializeOption operator|(InitializeOption a, InitializeOption b) { + return static_cast(static_cast(a) | + static_cast(b)); +} + +inline InitializeOption operator&(InitializeOption a, InitializeOption b) { + return static_cast(static_cast(a) & + static_cast(b)); +} + +inline InitializeOption operator~(InitializeOption a) { + return static_cast(~static_cast(a)); +} + /** * \brief Perform initialization or cleanup of lightweight web engine. */ @@ -64,16 +97,29 @@ class LWE_EXPORT LWE { * function before using WebContainer or WebView * * \code{.cpp} + * // Default: prefer main thread, no incremental GC * LWE::LWE::Initialize("/tmp/Starfish_storage"); + * + * // Prefer separate thread (may be ignored by some backends) + * LWE::LWE::Initialize("/tmp/Starfish_storage", + * LWE::InitializeOption::PreferSeparateThread); + * + * // Combine options with the | operator + * LWE::LWE::Initialize("/tmp/Starfish_storage", + * LWE::InitializeOption::PreferSeparateThread | + * LWE::InitializeOption::PreferIncrementalGC); * \endcode * * \param storageDirectoryPath Directory path for storage. * - * \param preferMainThread If true, LWE prefers to run on the process main - * thread. Default is true. + * \param option Bit-flag combination of InitializeOption values. + * Default is InitializeOption::None (prefer main thread, no incremental + * GC). Note: Some backends (e.g., flutter, uv_cairo_gl) always use a + * separate thread regardless of the PreferSeparateThread flag. + * */ static void Initialize(const char* storageDirectoryPath, - bool preferMainThread = true); + InitializeOption option = InitializeOption::None); /** * \brief Returns the initialization status of lightweight web engine. @@ -113,6 +159,16 @@ class LWE_EXPORT LWE { * \brief Returns LWE version number if the parameter is not null. */ static void GetVersion(int* major, int* minor, int* patch); + + /** + * \brief Returns whether LWE is running on a separate thread. + * + * \return true if LWE is using a separate thread, false if running on the + * main thread. + * + * \remark Must be called after Initialize. + */ + static bool IsUsingSeparateThread(); }; #define LWE_DEFAULT_FONT_SIZE 16 @@ -402,14 +458,23 @@ class LWE_EXPORT WebContainer { void DispatchMouseUpEvent(MouseButtonValue button, MouseButtonsValue buttons, double x, double y); void DispatchMouseWheelEvent(double x, double y, int delta); + // points: interleaved [x0,y0, x1,y1, ...], ids: per-point identifier, + // pointCount: number of touch points + void DispatchTouchStartEvent(const float* points, const int* ids, + size_t pointCount); + void DispatchTouchMoveEvent(const float* points, const int* ids, + size_t pointCount); + void DispatchTouchEndEvent(const float* points, const int* ids, + size_t pointCount); void DispatchKeyDownEvent(KeyValue keyCode); void DispatchKeyPressEvent(KeyValue keyCode); void DispatchKeyUpEvent(KeyValue keyCode); - void DispatchCompositionStartEvent(const std::string& soFarCompositiedString); + void DispatchCompositionStartEvent( + const std::string& currentCompositionString); void DispatchCompositionUpdateEvent( - const std::string& soFarCompositiedString); - void DispatchCompositionEndEvent(const std::string& soFarCompositiedString); + const std::string& currentCompositionString); + void DispatchCompositionEndEvent(const std::string& currentCompositionString); void RegisterOnShowSoftwareKeyboardIfPossibleHandler( const std::function& cb); void RegisterOnHideSoftwareKeyboardIfPossibleHandler( @@ -974,6 +1039,14 @@ class LWE_EXPORT WebView { */ float GetDevicePixelRatio(); + /** + * \brief Returns the WebContainer associated with this WebView. + * + * \return Pointer to the WebContainer. Owned by this WebView. + * + */ + WebContainer* FetchWebContainer(); + private: WebView(); ~WebView(); diff --git a/packages/webview_flutter_lwe/tizen/lib/aarch64/libclipper.so b/packages/webview_flutter_lwe/tizen/lib/aarch64/libclipper.so index 0348f668f..89721f09c 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/aarch64/libclipper.so and b/packages/webview_flutter_lwe/tizen/lib/aarch64/libclipper.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/aarch64/liblightweight-web-engine.flutter-impl.so b/packages/webview_flutter_lwe/tizen/lib/aarch64/liblightweight-web-engine.flutter-impl.so index 26bf39ed5..cfd69283c 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/aarch64/liblightweight-web-engine.flutter-impl.so and b/packages/webview_flutter_lwe/tizen/lib/aarch64/liblightweight-web-engine.flutter-impl.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/aarch64/liblightweight-web-engine.flutter.so b/packages/webview_flutter_lwe/tizen/lib/aarch64/liblightweight-web-engine.flutter.so index babc423c3..1542f5ac7 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/aarch64/liblightweight-web-engine.flutter.so and b/packages/webview_flutter_lwe/tizen/lib/aarch64/liblightweight-web-engine.flutter.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/aarch64/libmp4parse.so b/packages/webview_flutter_lwe/tizen/lib/aarch64/libmp4parse.so index b67aa040a..32f2da079 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/aarch64/libmp4parse.so and b/packages/webview_flutter_lwe/tizen/lib/aarch64/libmp4parse.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/aarch64/libskia_matrix.so b/packages/webview_flutter_lwe/tizen/lib/aarch64/libskia_matrix.so index 7caff14df..4a4a66096 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/aarch64/libskia_matrix.so and b/packages/webview_flutter_lwe/tizen/lib/aarch64/libskia_matrix.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/aarch64/libtuv.so b/packages/webview_flutter_lwe/tizen/lib/aarch64/libtuv.so index 95dd00212..98e94074f 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/aarch64/libtuv.so and b/packages/webview_flutter_lwe/tizen/lib/aarch64/libtuv.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/aarch64/libwebm.so b/packages/webview_flutter_lwe/tizen/lib/aarch64/libwebm.so index 93cd17c51..b99e08ee1 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/aarch64/libwebm.so and b/packages/webview_flutter_lwe/tizen/lib/aarch64/libwebm.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/aarch64/libwebp_lwe.so b/packages/webview_flutter_lwe/tizen/lib/aarch64/libwebp_lwe.so index 871e9c710..0de64fe8d 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/aarch64/libwebp_lwe.so and b/packages/webview_flutter_lwe/tizen/lib/aarch64/libwebp_lwe.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/aarch64/libwebsockets_lwe.so b/packages/webview_flutter_lwe/tizen/lib/aarch64/libwebsockets_lwe.so index 1c9a28089..af4dab104 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/aarch64/libwebsockets_lwe.so and b/packages/webview_flutter_lwe/tizen/lib/aarch64/libwebsockets_lwe.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/armel/libclipper.so b/packages/webview_flutter_lwe/tizen/lib/armel/libclipper.so index 480c89a62..6c7a45feb 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/armel/libclipper.so and b/packages/webview_flutter_lwe/tizen/lib/armel/libclipper.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/armel/liblightweight-web-engine.flutter-impl.so b/packages/webview_flutter_lwe/tizen/lib/armel/liblightweight-web-engine.flutter-impl.so index 01d036d33..27faeb46d 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/armel/liblightweight-web-engine.flutter-impl.so and b/packages/webview_flutter_lwe/tizen/lib/armel/liblightweight-web-engine.flutter-impl.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/armel/liblightweight-web-engine.flutter.so b/packages/webview_flutter_lwe/tizen/lib/armel/liblightweight-web-engine.flutter.so index b26e43b71..705f04f03 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/armel/liblightweight-web-engine.flutter.so and b/packages/webview_flutter_lwe/tizen/lib/armel/liblightweight-web-engine.flutter.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/armel/libmp4parse.so b/packages/webview_flutter_lwe/tizen/lib/armel/libmp4parse.so index 7f3624e15..1ee8350bc 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/armel/libmp4parse.so and b/packages/webview_flutter_lwe/tizen/lib/armel/libmp4parse.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/armel/libskia_matrix.so b/packages/webview_flutter_lwe/tizen/lib/armel/libskia_matrix.so index ea91a1460..7c128b89b 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/armel/libskia_matrix.so and b/packages/webview_flutter_lwe/tizen/lib/armel/libskia_matrix.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/armel/libtuv.so b/packages/webview_flutter_lwe/tizen/lib/armel/libtuv.so index f10c41dff..358788b33 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/armel/libtuv.so and b/packages/webview_flutter_lwe/tizen/lib/armel/libtuv.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/armel/libwebm.so b/packages/webview_flutter_lwe/tizen/lib/armel/libwebm.so index 134e38ae4..a260ad345 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/armel/libwebm.so and b/packages/webview_flutter_lwe/tizen/lib/armel/libwebm.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/armel/libwebp_lwe.so b/packages/webview_flutter_lwe/tizen/lib/armel/libwebp_lwe.so index 95af33406..ac19cfbaf 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/armel/libwebp_lwe.so and b/packages/webview_flutter_lwe/tizen/lib/armel/libwebp_lwe.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/armel/libwebsockets_lwe.so b/packages/webview_flutter_lwe/tizen/lib/armel/libwebsockets_lwe.so index 9ae08532c..a1f01802a 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/armel/libwebsockets_lwe.so and b/packages/webview_flutter_lwe/tizen/lib/armel/libwebsockets_lwe.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/i586/libclipper.so b/packages/webview_flutter_lwe/tizen/lib/i586/libclipper.so index ed6a0e595..7f1424317 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/i586/libclipper.so and b/packages/webview_flutter_lwe/tizen/lib/i586/libclipper.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/i586/liblightweight-web-engine.flutter-impl.so b/packages/webview_flutter_lwe/tizen/lib/i586/liblightweight-web-engine.flutter-impl.so index e22b2ab62..0736f565d 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/i586/liblightweight-web-engine.flutter-impl.so and b/packages/webview_flutter_lwe/tizen/lib/i586/liblightweight-web-engine.flutter-impl.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/i586/liblightweight-web-engine.flutter.so b/packages/webview_flutter_lwe/tizen/lib/i586/liblightweight-web-engine.flutter.so index 4c0d2558e..2583ea2eb 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/i586/liblightweight-web-engine.flutter.so and b/packages/webview_flutter_lwe/tizen/lib/i586/liblightweight-web-engine.flutter.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/i586/libmp4parse.so b/packages/webview_flutter_lwe/tizen/lib/i586/libmp4parse.so index 92f5279bc..c20341861 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/i586/libmp4parse.so and b/packages/webview_flutter_lwe/tizen/lib/i586/libmp4parse.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/i586/libskia_matrix.so b/packages/webview_flutter_lwe/tizen/lib/i586/libskia_matrix.so index cb54f06ae..501dcdb9a 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/i586/libskia_matrix.so and b/packages/webview_flutter_lwe/tizen/lib/i586/libskia_matrix.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/i586/libtuv.so b/packages/webview_flutter_lwe/tizen/lib/i586/libtuv.so index 286e06caf..b2509a8fd 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/i586/libtuv.so and b/packages/webview_flutter_lwe/tizen/lib/i586/libtuv.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/i586/libwebm.so b/packages/webview_flutter_lwe/tizen/lib/i586/libwebm.so index ac8bdff15..e4afa99e6 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/i586/libwebm.so and b/packages/webview_flutter_lwe/tizen/lib/i586/libwebm.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/i586/libwebp_lwe.so b/packages/webview_flutter_lwe/tizen/lib/i586/libwebp_lwe.so index 93d30020e..aedb4185f 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/i586/libwebp_lwe.so and b/packages/webview_flutter_lwe/tizen/lib/i586/libwebp_lwe.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/i586/libwebsockets_lwe.so b/packages/webview_flutter_lwe/tizen/lib/i586/libwebsockets_lwe.so index d5aafb0da..37904234d 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/i586/libwebsockets_lwe.so and b/packages/webview_flutter_lwe/tizen/lib/i586/libwebsockets_lwe.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/x86_64/libclipper.so b/packages/webview_flutter_lwe/tizen/lib/x86_64/libclipper.so index 932ed8cf3..af731a6f6 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/x86_64/libclipper.so and b/packages/webview_flutter_lwe/tizen/lib/x86_64/libclipper.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/x86_64/liblightweight-web-engine.flutter-impl.so b/packages/webview_flutter_lwe/tizen/lib/x86_64/liblightweight-web-engine.flutter-impl.so index 84d0962ba..8a2a5af61 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/x86_64/liblightweight-web-engine.flutter-impl.so and b/packages/webview_flutter_lwe/tizen/lib/x86_64/liblightweight-web-engine.flutter-impl.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/x86_64/liblightweight-web-engine.flutter.so b/packages/webview_flutter_lwe/tizen/lib/x86_64/liblightweight-web-engine.flutter.so index 4da9d69d6..5e3adcb83 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/x86_64/liblightweight-web-engine.flutter.so and b/packages/webview_flutter_lwe/tizen/lib/x86_64/liblightweight-web-engine.flutter.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/x86_64/libmp4parse.so b/packages/webview_flutter_lwe/tizen/lib/x86_64/libmp4parse.so index 110c447d8..454f19f30 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/x86_64/libmp4parse.so and b/packages/webview_flutter_lwe/tizen/lib/x86_64/libmp4parse.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/x86_64/libskia_matrix.so b/packages/webview_flutter_lwe/tizen/lib/x86_64/libskia_matrix.so index 5a86e7624..d9d9efbbb 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/x86_64/libskia_matrix.so and b/packages/webview_flutter_lwe/tizen/lib/x86_64/libskia_matrix.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/x86_64/libtuv.so b/packages/webview_flutter_lwe/tizen/lib/x86_64/libtuv.so index f4f135785..ce7a80f25 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/x86_64/libtuv.so and b/packages/webview_flutter_lwe/tizen/lib/x86_64/libtuv.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/x86_64/libwebm.so b/packages/webview_flutter_lwe/tizen/lib/x86_64/libwebm.so index cc43e5ab2..b6dbdbf7b 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/x86_64/libwebm.so and b/packages/webview_flutter_lwe/tizen/lib/x86_64/libwebm.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/x86_64/libwebp_lwe.so b/packages/webview_flutter_lwe/tizen/lib/x86_64/libwebp_lwe.so index 5a28ca975..23d401c24 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/x86_64/libwebp_lwe.so and b/packages/webview_flutter_lwe/tizen/lib/x86_64/libwebp_lwe.so differ diff --git a/packages/webview_flutter_lwe/tizen/lib/x86_64/libwebsockets_lwe.so b/packages/webview_flutter_lwe/tizen/lib/x86_64/libwebsockets_lwe.so index 4da2bd876..59d177429 100644 Binary files a/packages/webview_flutter_lwe/tizen/lib/x86_64/libwebsockets_lwe.so and b/packages/webview_flutter_lwe/tizen/lib/x86_64/libwebsockets_lwe.so differ