diff --git a/packages/webview_flutter_lwe/CHANGELOG.md b/packages/webview_flutter_lwe/CHANGELOG.md index 14b6648ee..93942fa9b 100644 --- a/packages/webview_flutter_lwe/CHANGELOG.md +++ b/packages/webview_flutter_lwe/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.3.2 + +* Update lightweight web engine(1.2.2). + ## 0.3.1 * Fix new lint warnings. diff --git a/packages/webview_flutter_lwe/README.md b/packages/webview_flutter_lwe/README.md index 68d58b894..4d17d2119 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.4.2 - webview_flutter_lwe: ^0.3.1 + webview_flutter_lwe: ^0.3.2 ``` ## Example diff --git a/packages/webview_flutter_lwe/pubspec.yaml b/packages/webview_flutter_lwe/pubspec.yaml index 96464d249..4d0f98984 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.3.1 +version: 0.3.2 environment: sdk: ">=3.1.0 <4.0.0" diff --git a/packages/webview_flutter_lwe/tizen/inc/lwe/LWEWebView.h b/packages/webview_flutter_lwe/tizen/inc/lwe/LWEWebView.h index a60cb4dab..60f787417 100644 --- a/packages/webview_flutter_lwe/tizen/inc/lwe/LWEWebView.h +++ b/packages/webview_flutter_lwe/tizen/inc/lwe/LWEWebView.h @@ -30,21 +30,81 @@ #include #include +#include +#include #include +#include #include #include "PlatformIntegrationData.h" +using LWEDelegateRef = std::unique_ptr>; + namespace LWE { +/** + * \brief Perform initialization or cleanup of lightweight web engine. + */ class LWE_EXPORT LWE { public: - // You must call Initialize function before using WebContainer or WebView + /** + * \brief Initialize a lightweight web engine. + * It performs tasks (thread initialization, GC preparation) necessary for + * the operation of a lightweight web engine. You must call Initialize + * function before using WebContainer or WebView + * + * \code{.cpp} + * LWE::LWE::Initialize("/tmp/Starfish_localStorage.txt", + * "/tmp/Starfish_Cookies.txt", "/tmp/Starfish-cache"); + * \endcode + * + * \param localStorageDataFilePath File path for local storage. + * \param cookieStoreDataFilePath File path for cookie storage. + * \param httpCacheDataDirectorypath Directory path for http cache. + * + */ static void Initialize(const char* localStorageDataFilePath, const char* cookieStoreDataFilePath, const char* httpCacheDataDirectorypath); + + /** + * \brief Returns the initialization status of lightweight web engine. + * Before performing an initialization, this function can be used to check + * if an initialization has already been performed. + * + * \return Initialization status of lightweight web engine. + */ static bool IsInitialized(); + + /** + * \brief Perform lightweight web engine cleanup. + * Called once when the lightweight web engine is no longer in use. + * + * \code{.cpp} + * LWE::LWE::Finalize(); + * \endcode + * + */ static void Finalize(); + + /** + * \brief Returns GC frequency. default value is 12 + * If you want to cause more GC while running, + * you can increase this value. + */ + static unsigned char GetGCFrequency(); + + /** + * \brief Set GC frequency. default value is 12 + * If you want to cause more GC while running, + * you can increase this value. + */ + static void SetGCFrequency(unsigned char freq); + + /** + * \brief Returns LWE version number if the parameter is not null. + */ + static void GetVersion(int* major, int* minor, int* patch); }; #define LWE_DEFAULT_FONT_SIZE 16 @@ -58,18 +118,30 @@ class LWE_EXPORT CookieManager { std::string GetCookie(std::string url); bool HasCookies(); void ClearCookies(); - static CookieManager* GetInstance(); static void Destroy(); + CookieManager(const CookieManager& other) = delete; + CookieManager(CookieManager&& other) = delete; + CookieManager& operator=(const CookieManager& other) = delete; + private: CookieManager(); ~CookieManager(); + + LWEDelegateRef m_delegate; }; class LWE_EXPORT Settings { public: + Settings(); Settings(const std::string& defaultUA, const std::string& ua); + ~Settings(); + Settings(const Settings& other); + + bool UpdateSetting(const std::string& key, const std::string& value); + std::string GetSetting(std::string key) const; + std::string GetDefaultUserAgent() const; std::string GetUserAgentString() const; std::string GetProxyURL() const; @@ -88,6 +160,8 @@ class LWE_EXPORT Settings { uint32_t NeedsDownScaleImageResourceLargerThan() const; bool ScrollbarVisible() const; bool UseExternalPopup() const; + bool UseSpatialNavigation() const; + void SetUserAgentString(const std::string& ua); void SetCacheMode(int mode); void SetProxyURL(const std::string& proxyURL); @@ -98,6 +172,7 @@ class LWE_EXPORT Settings { unsigned char a); void SetBaseForegroundColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a); + void SetWebSecurityMode(WebSecurityMode value); void SetIdleModeJob(IdleModeJob j); void SetIdleModeCheckIntervalInMS(uint32_t intervalInMS); @@ -107,46 +182,32 @@ class LWE_EXPORT Settings { uint32_t demention); // Experimental void SetScrollbarVisible(bool visible); void SetUseExternalPopup(bool useExternalPopup); + void SetUseSpatialNavigation(bool useSpatialNavigation); + + void IterateSettings( + std::function callback) + const; private: - std::string m_defaultUserAgent; - std::string m_userAgent; - std::string m_proxyURL; - int m_cacheMode; - uint32_t m_defaultFontSize; - TTSMode m_ttsMode; - std::string m_ttsLanguage; - unsigned char m_bgR, m_bgG, m_bgB, m_bgA; - unsigned char m_fgR, m_fgG, m_fgB, m_fgA; - WebSecurityMode m_webSecurityMode; - IdleModeJob m_idleModeJob; // default value is IdleModeJob::IdleModeFull - uint32_t m_idleModeCheckIntervalInMS; // default value is 3000(ms) - bool m_needsDownloadWebFontsEarly; - bool m_useHttp2; // default value is false - uint32_t m_needsDownScaleImageResourceLargerThan; - bool m_scrollbarVisible; - bool m_useExternalPopup; + LWEDelegateRef m_delegate; }; class LWE_EXPORT ResourceError { public: ResourceError(int code, const std::string& description, const std::string& url); - int GetErrorCode(); - std::string GetDescription(); - std::string GetUrl(); + ResourceError(const ResourceError& other); + ~ResourceError(); + + int GetErrorCode() const; + std::string GetDescription() const; + std::string GetUrl() const; private: - int m_errorCode; - std::string m_description; - std::string m_url; + LWEDelegateRef m_delegate; }; class LWE_EXPORT WebContainer { - private: - // use Destroy function instead of using delete operator - ~WebContainer() {} - public: // Function set for render to buffer static WebContainer* Create(unsigned width, unsigned height, @@ -172,37 +233,60 @@ class LWE_EXPORT WebContainer { size_t bufferImageWidth; size_t bufferImageHeight; }; + + struct WebContainerArguments { + unsigned width; + unsigned height; + float devicePixelRatio; + const char* defaultFontName; + const char* locale; + const char* timezoneID; + }; + + struct RendererGLConfiguration { + std::function onMakeCurrent; + std::function onSwapBuffers; + std::function onCreateSharedContext; + std::function onDestroyContext; + std::function onClearCurrentContext; + std::function onMakeCurrentWithContext; + std::function onGetProcAddress; + std::function onIsSupportedExtension; + }; + + struct TransformationMatrix { + double scaleX; + double skewX; + double translateX; + double skewY; + double scaleY; + double translateY; + double perspectiveX; + double perspectiveY; + double perspectiveScale; + }; + void RegisterPreRenderingHandler(const std::function& cb); void RegisterOnRenderedHandler( const std::function& cb); static WebContainer* CreateWithPlatformImage( - unsigned width, unsigned height, + const WebContainerArguments& args, const std::function& prepareImageCb, - const std::function& flushCb, - float devicePixelRatio, const char* defaultFontName, const char* locale, - const char* timezoneID); + const std::function& flushCb); // <--- end of function set for render to buffer // Function set for render with OpenGL - static WebContainer* CreateGL( - unsigned width, unsigned height, - const std::function& onGLMakeCurrent, - const std::function& - onGLSwapBuffers, - float devicePixelRatio, const char* defaultFontName, const char* locale, - const char* timezoneID); + static WebContainer* CreateGL(const WebContainerArguments& args, + const RendererGLConfiguration& config); static WebContainer* CreateGLWithPlatformImage( - unsigned width, unsigned height, - const std::function& onGLMakeCurrent, - const std::function& - onGLSwapBuffers, + const WebContainerArguments& args, const RendererGLConfiguration& config, const std::function& prepareImageCb, - const std::function& flushCb, - float devicePixelRatio, const char* defaultFontName, const char* locale, - const char* timezoneID); + const std::function& flushCb); + + static WebContainer* CreateWebContainer(void* delegate); // <--- end of function set for render with OpenGL @@ -292,6 +376,7 @@ class LWE_EXPORT WebContainer { void RegisterDebuggerShouldContinueWaitingHandler( const std::function& cb); + void RegisterOnIdleHandler(const std::function& cb); void CallHandler(const std::string& handler, void* param); @@ -339,58 +424,428 @@ class LWE_EXPORT WebContainer { void RegisterSetNeedsRenderingCallback( const std::function& doRenderingFunction)>& cb); + void SetDevicePixelRatio(float dpr); + float GetDevicePixelRatio(); - protected: - WebContainer(void* webView); + void RegisterGetScreenMatrixHandler( + const std::function& cb); private: - void* m_impl; -}; + WebContainer(); -class LWE_EXPORT WebView { - protected: // use Destroy function instead of using delete operator - virtual ~WebView() {} + ~WebContainer(); + + LWEDelegateRef m_delegate; +}; +/** + * \brief WebView of lightweight web engine. + */ +class LWE_EXPORT WebView { public: + /** + * \brief Create a Webview instance. + * The webview instance should be obtained through this function, not + * separately. + * + * \code{.cpp} + * + * LWE::WebView* webView = LWE::WebView::Create(wndObj, 0, 0, 800, 600, 1.0, + * "serif", "ko-KR", "Asia/Seoul"); + * + * \endcode + * + * \param win Window object where the content will be rendered. It accepts + * different window objects depending on which platform the LWE was compiled + * for. For EFL, Pass an Win(Elementary Widget) object. + * + * \param x The value of x among the initial positions of the webview. + * + * \param y The value of y among the initial positions of the webview. + * + * \param width The width value of the webview. + * + * \param height The height value of the webview. + * + * \param devicePixelRatio The device pixel ratio value. Width, height + * divided by this value is used as the logical width, height for web + * content. This means it can be utilized like a scale value. + * + * \param defaultFontName The font value, which will try to match this font + * first if there is not given font family. + * + * \param locale Default locale used by the javascript engine. + * + * \param timezoneID Default time zone used by the javascript engine. + * + * \return new webview instance. + */ static WebView* Create(void* win, unsigned x, unsigned y, unsigned width, unsigned height, float devicePixelRatio, const char* defaultFontName, const char* locale, const char* timezoneID); - virtual void Destroy(); + /** + * \brief Destory a webview instance. + * Use Destroy function instead of using delete operator + * + * \code{.cpp} + * + * webView->Destroy(); + * + * \endcode + */ + void Destroy(); + /** + * \brief Gets the settings used by the webview. + * + * \return Current webview's setting value. + */ Settings GetSettings(); - virtual void LoadURL(const std::string& url); + + /** + * \brief Loads the given URL. + * + * \code{.cpp} + * + * webView->LoadURL("https://www.w3.org/"); + * + * \endcode + * + * \param url the URL of the resource to load. + * + */ + void LoadURL(const std::string& url); + + /** + * \brief Gets the URL for the current page. + * + * \code{.cpp} + * + * std::string currentURL = webView->GetURL(); + * + * \endcode + * + * \return The URL for the current page. + */ std::string GetURL(); + + /** + * \brief Loads the given data into this WebView using a 'data' scheme URL. + * + * \code{.cpp} + * + * webView->LoadData("TEST!"); + * + * \endcode + * + * \param data String of data. + * + */ void LoadData(const std::string& data); + + /** + * \brief Reloads the current URL. + * + * \code{.cpp} + * + * webView->Reload(); + * + * \endcode + * + */ void Reload(); + + /** + * \brief Stops the current load. + * + * \code{.cpp} + * + * webView->StopLoading(); + * + * \endcode + * + */ void StopLoading(); + + /** + * \brief Goes back in the history of this WebView. + * + * \code{.cpp} + * + * webView->GoBack(); + * + * \endcode + * + */ void GoBack(); + + /** + * \brief Goes forward in the history of this WebView. + * + * \code{.cpp} + * + * webView->GoForward(); + * + * \endcode + * + */ void GoForward(); + + /** + * \brief Gets whether this WebView has a back history item. + * + * \code{.cpp} + * + * if(webView->CanGoBack()) + * { + * webView->GoBack(); + * } + * + * \endcode + * + * \return true if this WebView has a back history item. + */ bool CanGoBack(); + + /** + * \brief Gets whether this WebView has a forward history item. + * + * \code{.cpp} + * + * if(webView->CanGoForward()) + * { + * webView->GoForward(); + * } + * + * \endcode + * + * \return true if this WebView has a forward history item. + */ bool CanGoForward(); + + /** + * \brief Change the visibilityState property of the Document to hidden. + * This has the effect of stopping the rendering of web contents. + * + */ void Pause(); + + /** + * \brief Change the visibilityState property of the Document to visible. + * This has the effect of resuming the rendering of web contents. + * + */ void Resume(); + + /** + * \brief Injects the supplied native callback into this webview. + * .... + * + * \code{.cpp} + * + * webView->AddJavaScriptInterface("TEST", "set", [](std::string param) -> + * std::string { return ""; }); + * + * \endcode + * + * \param exposedObjectName Global object names exposed in javascript. + * + * \param jsFunctionName Function name to call in javascript. + * + * \param cb Native callback which wants to be called from javascript side. + * + */ void AddJavaScriptInterface( const std::string& exposedObjectName, const std::string& jsFunctionName, std::function cb); + + /** + * \brief Synchronously evaluates JavaScript in the context of the currently + * displayed page. + * + * \code{.cpp} + * + * std::string result = webView->EvaluateJavaScript("1+1"); + * printf("%s\n",result.c_str()); + * + * \endcode + * + * \param script Javascript string to execute. + * + * \return The result of running the javascript(only supported string). + */ std::string EvaluateJavaScript(const std::string& script); + + /** + * \brief Asynchronously evaluates JavaScript in the context of the + * currently displayed page. + * .... + * + * \code{.cpp} + * + * webView->EvaluateJavaScript("1+1",[](const std::string& result) -> void{ + * printf("%s\n",result.c_str()); }); + * + * \endcode + * + * \param script Javascript string to execute. + * + * \param cb A callback that is called at the end of performing javascript . + * + */ void EvaluateJavaScript(const std::string& script, std::function cb); + + /** + * \brief Tells this webview to clear its internal back/forward list. + * + * \code{.cpp} + * + * webView->ClearHistory(); + * + * \endcode + * + */ void ClearHistory(); + + /** + * \brief Set the settings for current webview. + * + * \param settings Settings value for current webview. + * + */ void SetSettings(const Settings& settings); + + /** + * \brief Removes a previously injected native callback from this webview. + * + * \code{.cpp} + * + * webView->RemoveJavascriptInterface("TEST", "set"); + * + * \endcode + * + * \param exposedObjectName Global object names exposed in javascript. + * + * \param jsFunctionName Function name to call in javascript. + * + */ void RemoveJavascriptInterface(const std::string& exposedObjectName, const std::string& jsFunctionName); + + /** + * \brief Clears the resource cache. + * + * \code{.cpp} + * + * webView->ClearCache(); + * + * \endcode + * + */ void ClearCache(); + + /** + * \brief Register callbacks that will be used to handle web resource + * loading error. + * + * \code{.cpp} + * + * webView->RegisterOnReceivedErrorHandler( + * [](LWE::WebView* webview, LWE::ResourceError err) -> void { + * printf("Error URL : %s\n", err.GetUrl().c_str()); + * printf("Error Code : %d\n", err.GetErrorCode()); + * printf("Error Description : %s\n", err.GetDescription().c_str()); + * } + * ); + * + * \endcode + * + * \param cb error handling callback. + * + */ void RegisterOnReceivedErrorHandler( std::function cb); + + /** + * \brief Register a callback to be called when the DOMContentLoaded event + * occurs. + * + * \code{.cpp} + * + * webView->RegisterOnPageParsedHandler( + * [](LWE::WebView* webview, const std::string& url) -> void { + * printf("URL : %s\n", url.c_str()); + * } + * ); + * + * \endcode + * + * \param cb Event handling callback. + * + */ void RegisterOnPageParsedHandler( std::function cb); + + /** + * \brief Register a callback to be called when the document load event + * occurs. + * + * \code{.cpp} + * + * webView->RegisterOnPageLoadedHandler( + * [](LWE::WebView* webview, const std::string& url) -> void { + * printf("URL : %s\n", url.c_str()); + * } + * ); + * + * \endcode + * + * \param cb Event handling callback. + * + */ void RegisterOnPageLoadedHandler( std::function cb); + + /** + * \brief Register a callback to be called when url navigation start. + * + * \code{.cpp} + * + * webView->RegisterOnPageStartedHandler( + * [](LWE::WebView* webview, const std::string& url) -> void { + * printf("URL : %s\n", url.c_str()); + * } + * ); + * + * \endcode + * + * \param cb Event handling callback. + * + */ void RegisterOnPageStartedHandler( std::function cb); + + /** + * \brief Register a callback to be called at the end of loading individual + * resources. + * + * \code{.cpp} + * + * webView->RegisterOnLoadResourceHandler( + * [](LWE::WebView* webview, const std::string& url) -> void { + * printf("URL : %s\n", url.c_str()); + * } + * ); + * + * \endcode + * + * \param cb Event handling callback. + * + */ void RegisterOnLoadResourceHandler( std::function cb); @@ -401,7 +856,6 @@ class LWE_EXPORT WebView { fileReadCallback, std::function fileLengthCallback, std::function fileCloseCallback); - void RegisterDebuggerShouldInitHandler( const std::function& cb); @@ -409,28 +863,114 @@ class LWE_EXPORT WebView { const std::function& cb); + /** + * \brief Storing separate user data(pointers) in webview object. + * + * \param key User data key. + * + * \param data User data pointer. + * + */ void SetUserData(const std::string& key, void* data); + + /** + * \brief Getting user data(pointers) from webview object. + * + * \param key User data key. + * + * \return User data pointer. + * + */ void* GetUserData(const std::string& key); + /** + * \brief Get the document's title value. + * + * \return document's title value. + */ std::string GetTitle(); + + /** + * \brief Scrolls to a absolute position in the current document. + * + * \param x The x-coordinate value of the position that user want to scroll. + * + * \param y The x-coordinate value of the position that user want to scroll. + * + */ void ScrollTo(int x, int y); + + /** + * \brief Scrolls to a relative position in the current document. + * + * \param x The x-coordinate value of the position that user want to scroll. + * + * \param y The x-coordinate value of the position that user want to scroll. + * + */ void ScrollBy(int x, int y); + + /** + * \brief Get x-coordinate of the scrolled position for the current + * document. + * + * \return The x-coordinate value of position. + * + */ int GetScrollX(); + + /** + * \brief Get y-coordinate of the scrolled position for the current + * document. + * + * \return The y-coordinate value of position. + * + */ int GetScrollY(); - virtual void* Unwrap() { - // Some platform returns associated native handle ex) Evas_Object* - return nullptr; - } - virtual void Focus(); - virtual void Blur(); + /** + * \brief Get platform native handle. + * This is intended for specialized use. It is platform dependent. For + * example, For EFL ports, the object you get by this API is an Evas_Object + * handle. You can use EFL API to resize, show, hide with this handle. + * + * \return platform native handle. + */ + void* Unwrap(); + + /** + * \brief Give focus to current webview. + * + */ + void Focus(); + + /** + * \brief Blur the current webview. + * + */ + void Blur(); - protected: - WebView(void* impl) : m_impl(impl) {} + /** + * \brief Change DPR value at current webview. + * + * \param dpr Device pixel ratio. + * + */ + void SetDevicePixelRatio(float dpr); + + /** + * \brief DPR value of current webview. + * + * \return Device pixel ratio. + * + */ + float GetDevicePixelRatio(); - virtual WebContainer* FetchWebContainer() = 0; + private: + WebView(); + ~WebView(); - void* m_impl; + LWEDelegateRef m_delegate; }; } // namespace LWE diff --git a/packages/webview_flutter_lwe/tizen/inc/lwe/LWEWorker.h b/packages/webview_flutter_lwe/tizen/inc/lwe/LWEWorker.h new file mode 100644 index 000000000..4c5489833 --- /dev/null +++ b/packages/webview_flutter_lwe/tizen/inc/lwe/LWEWorker.h @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2023-present Samsung Electronics Co., Ltd + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + * USA + */ + +#ifndef __LWE_WORKER__ +#define __LWE_WORKER__ + +#ifndef LWE_EXPORT +#ifdef _MSC_VER +#define LWE_EXPORT __declspec(dllexport) +#else +#define LWE_EXPORT __attribute__((visibility("default"))) +#endif +#endif + +#include +#include + +namespace LWE { + +class LWE_EXPORT WorkerClient { + public: + /* + * Register worker data directory path. + * + * Be sure to set the same data path as the shared or service worker server. + * If you do not register data directory, the data directory path is + * set to '${HOME}/starfish-worker-data' or /tmp/starfish-worker-data. + * + * This method must be invoked after LWE::Initialize() is invoked. + */ + static void RegisterDataDirectoryPath(const std::string &dataDirectoryPath); + + /* + * Register service worker server process executor callback function. + * The callback function should return the success or failure of the + * processor execution. + * + * This method must be invoked after LWE::Initialize() is invoked. + */ + static void RegisterServiceWorkerProcessExecutor( + const std::function &fn); +}; + +enum class LWE_EXPORT WorkerProcessState { + None, + Terminated, +}; + +class LWE_EXPORT ServiceWorker { + public: + /* + * Initialize service worker server. + * + * Be sure to set the same data path as the worker client. + * If you set data directory path to an empty path, it is set to + * '${HOME}/starfish-worker-data' or /tmp/starfish-worker-data. + */ + static void Initialize(const std::string &dataDirectoryPath); + + static void RegisterOnStatusChangedHandler( + const std::function &cb); + + static void Finalize(); +}; + +class LWE_EXPORT SharedWorker { + public: + /* + * Initialize shared worker server. + * + * Be sure to set the same data path as the worker client. + * If you set data directory path to an empty path, it is set to + * '${HOME}/starfish-worker-data' or /tmp/starfish-worker-data. + */ + static void Initialize(const std::string &dataDirectoryPath); + + static void RegisterOnStatusChangedHandler( + const std::function &cb); + + static void Finalize(); +}; + +} // namespace LWE + +#endif diff --git a/packages/webview_flutter_lwe/tizen/inc/lwe/PlatformIntegrationData.h b/packages/webview_flutter_lwe/tizen/inc/lwe/PlatformIntegrationData.h index 26716c0a2..71a1ccb4a 100644 --- a/packages/webview_flutter_lwe/tizen/inc/lwe/PlatformIntegrationData.h +++ b/packages/webview_flutter_lwe/tizen/inc/lwe/PlatformIntegrationData.h @@ -261,8 +261,10 @@ enum class IdleModeJob { ClearDrawnBuffers = 1, ForceGC = 1 << 1, // it also includes calling malloc_trim(0) DropDecodedImageBuffer = 1 << 2, + ClearFontCache = 1 << 3, - IdleModeFull = ClearDrawnBuffers | ForceGC | DropDecodedImageBuffer, + IdleModeFull = + ClearDrawnBuffers | ForceGC | DropDecodedImageBuffer | ClearFontCache, IdleModeMiddle = ForceGC, IdleModeNone = 0, diff --git a/packages/webview_flutter_lwe/tizen/lib/aarch64/libclipper.so b/packages/webview_flutter_lwe/tizen/lib/aarch64/libclipper.so new file mode 100755 index 000000000..0d5e150ee Binary files /dev/null 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 new file mode 100755 index 000000000..d92bb7102 Binary files /dev/null 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 7cba9693f..d2c58d641 100755 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 new file mode 100755 index 000000000..7b6482f3d Binary files /dev/null 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 new file mode 100755 index 000000000..ae61e4db0 Binary files /dev/null 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 a3323cbd2..599dbb747 100755 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 new file mode 100755 index 000000000..c502ffafd Binary files /dev/null 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 new file mode 100755 index 000000000..702280a4f Binary files /dev/null and b/packages/webview_flutter_lwe/tizen/lib/aarch64/libwebp_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 new file mode 100755 index 000000000..b4726b555 Binary files /dev/null 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 new file mode 100755 index 000000000..1a7292b4b Binary files /dev/null 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 927499c52..881389f57 100755 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 new file mode 100755 index 000000000..d5745dec8 Binary files /dev/null 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 new file mode 100755 index 000000000..6fca1d569 Binary files /dev/null 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 02915e9a7..a2741658b 100755 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 new file mode 100755 index 000000000..b675fec11 Binary files /dev/null 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 new file mode 100755 index 000000000..8542867f0 Binary files /dev/null and b/packages/webview_flutter_lwe/tizen/lib/armel/libwebp_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 new file mode 100755 index 000000000..827f3d472 Binary files /dev/null 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 new file mode 100755 index 000000000..a77179a0f Binary files /dev/null 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 a8d48fe03..4de86f270 100755 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 new file mode 100755 index 000000000..bb3a1a89b Binary files /dev/null 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 new file mode 100755 index 000000000..a9100dc1f Binary files /dev/null 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 ff0e268cf..fcccea601 100755 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 new file mode 100755 index 000000000..5dbf3adbd Binary files /dev/null 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 new file mode 100755 index 000000000..10e4bee61 Binary files /dev/null and b/packages/webview_flutter_lwe/tizen/lib/i586/libwebp_lwe.so differ diff --git a/packages/webview_flutter_lwe/tizen/project_def.prop b/packages/webview_flutter_lwe/tizen/project_def.prop index 289365aef..a829de74d 100644 --- a/packages/webview_flutter_lwe/tizen/project_def.prop +++ b/packages/webview_flutter_lwe/tizen/project_def.prop @@ -21,5 +21,5 @@ USER_CPP_INC_FILES = # Linker options USER_LIB_DIRS = lib/${BUILD_ARCH} -USER_LIBS = pthread lightweight-web-engine.flutter tuv +USER_LIBS = pthread lightweight-web-engine.flutter tuv lightweight-web-engine.flutter-impl USER_LFLAGS = -Wl,-rpath='$$ORIGIN'