From: BasavarajPS <45586075+BasavarajPS@users.noreply.github.com> Date: Mon, 15 Apr 2019 23:28:25 +0000 (+0530) Subject: [WebView][TCSACR-219] Add Context APIs (#643) X-Git-Tag: submit/tizen/20190417.005209~1^2~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c72268d1a5fa5279492190a755adcb9f62e95b51;p=platform%2Fcore%2Fcsapi%2Ftizenfx.git [WebView][TCSACR-219] Add Context APIs (#643) Signed-off-by: basavarajps --- diff --git a/src/Tizen.WebView/Interop/Interop.ChromiumEwk.Context.cs b/src/Tizen.WebView/Interop/Interop.ChromiumEwk.Context.cs index 7930e1c21..60021f487 100644 --- a/src/Tizen.WebView/Interop/Interop.ChromiumEwk.Context.cs +++ b/src/Tizen.WebView/Interop/Interop.ChromiumEwk.Context.cs @@ -37,5 +37,17 @@ internal static partial class Interop [DllImport(Libraries.ChromiumEwk)] internal static extern CacheModel ewk_context_cache_model_get(IntPtr context); + + [DllImport(Libraries.ChromiumEwk)] + internal static extern void ewk_context_resource_cache_clear(IntPtr context); + + [DllImport(Libraries.ChromiumEwk)] + internal static extern void ewk_context_notify_low_memory(IntPtr context); + + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] + internal delegate void DownloadStartCallback(string url, IntPtr userData); + + [DllImport(Libraries.ChromiumEwk)] + internal static extern void ewk_context_did_start_download_callback_set(IntPtr context, DownloadStartCallback callback, IntPtr userData); } } diff --git a/src/Tizen.WebView/Tizen.WebView/Context.cs b/src/Tizen.WebView/Tizen.WebView/Context.cs index ddf249039..c1ed8efa8 100644 --- a/src/Tizen.WebView/Tizen.WebView/Context.cs +++ b/src/Tizen.WebView/Tizen.WebView/Context.cs @@ -15,6 +15,7 @@ */ using System; +using System.ComponentModel; namespace Tizen.WebView { @@ -51,6 +52,16 @@ namespace Tizen.WebView private IntPtr _handle; private CookieManager _cookieManager; + private Interop.ChromiumEwk.DownloadStartCallback _downloadStartCallback; + + /// + /// The delegate for handling download request. + /// + /// 6 + /// url of the download request. + [EditorBrowsable(EditorBrowsableState.Never)] + public delegate void DownloadRequestDelegate(string url); + internal Context(IntPtr handle) { _handle = handle; @@ -94,5 +105,38 @@ namespace Tizen.WebView } return _cookieManager; } + + /// + /// Clears HTTP caches in the local storage and all resources cached in memory. + /// + /// 6 + public void ClearResourceCache() + { + Interop.ChromiumEwk.ewk_context_resource_cache_clear(_handle); + } + + /// + /// Informs the WebEngine low memory to release unused memory. + /// + /// 6 + [EditorBrowsable(EditorBrowsableState.Never)] + public void NotifyLowMemory() + { + Interop.ChromiumEwk.ewk_context_notify_low_memory(_handle); + } + + /// + /// Sets the delegate function for download request. + /// + /// 6 + [EditorBrowsable(EditorBrowsableState.Never)] + public void SetDownloadRequestDelegate(DownloadRequestDelegate startDownloadCb) + { + _downloadStartCallback = (string url, IntPtr userData) => + { + startDownloadCb(url); + }; + Interop.ChromiumEwk.ewk_context_did_start_download_callback_set(_handle, _downloadStartCallback, IntPtr.Zero); + } } }