Skip to content

Commit 2f111e5

Browse files
authored
Merge pull request #46 from shatyuka/feat/delete-cookie
Add DeleteCookie(System.Net.Cookie cookie)
2 parents 6dc4917 + 1050760 commit 2f111e5

7 files changed

Lines changed: 26 additions & 3 deletions

File tree

samples/Avalonia.Controls.WebView.Samples/MainView.axaml.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ private async void NativeWebView_OnNavigationCompleted(object? sender, AC.WebVie
6767
foreach (var c in cookies)
6868
{
6969
LogList.Text += "\r\nCookie retrieved " + c;
70-
manager.DeleteCookie(c.Name, c.Domain, c.Path);
70+
manager.DeleteCookie(c);
7171
}
7272

7373
cookies = await manager.GetCookiesAsync();

src/Avalonia.Controls.WebView.Core/Android/AndroidWebViewAdapter.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,11 @@ public void DeleteCookie(string name, string domain, string path)
266266
}
267267
}
268268

269+
public void DeleteCookie(System.Net.Cookie cookie)
270+
{
271+
DeleteCookie(cookie.Name, cookie.Domain, cookie.Path);
272+
}
273+
269274
public Task<IReadOnlyList<Cookie>> GetCookiesAsync()
270275
{
271276
var cookies = new List<Cookie>();

src/Avalonia.Controls.WebView.Core/IWebViewAdapter.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -398,6 +398,7 @@ internal interface IWebViewAdapterWithCookieManager : IWebViewAdapter
398398
{
399399
void AddOrUpdateCookie(System.Net.Cookie cookie);
400400
void DeleteCookie(string name, string domain, string path);
401+
void DeleteCookie(System.Net.Cookie cookie);
401402
Task<IReadOnlyList<System.Net.Cookie>> GetCookiesAsync();
402403
}
403404

src/Avalonia.Controls.WebView.Core/Linux/WpeWebViewAdapter.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -843,10 +843,15 @@ private static void OnAddCookieFinished(IntPtr sourceObject, IntPtr result, IntP
843843
}
844844

845845
public void DeleteCookie(string name, string domain, string path)
846+
{
847+
DeleteCookie(new Cookie(name, "", path, domain));
848+
}
849+
850+
public void DeleteCookie(Cookie cookie)
846851
{
847852
if (_cookieManager == IntPtr.Zero || _disposed) return;
848853

849-
var soupCookie = WpeInterop.soup_cookie_new(name, "", domain, path, 0);
854+
var soupCookie = WpeInterop.soup_cookie_new(cookie.Name, cookie.Value, cookie.Domain, cookie.Path, 0);
850855
if (soupCookie != IntPtr.Zero)
851856
{
852857
var tcs = new TaskCompletionSource<bool>(TaskCreationOptions.RunContinuationsAsynchronously);

src/Avalonia.Controls.WebView.Core/Macios/MaciosWebViewAdapter.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -430,9 +430,14 @@ public void AddOrUpdateCookie(Cookie cookie)
430430
}
431431

432432
public void DeleteCookie(string name, string domain, string path)
433+
{
434+
DeleteCookie(new Cookie(name, ".", path, domain));
435+
}
436+
437+
public void DeleteCookie(Cookie cookie)
433438
{
434439
using var cookieStore = _config.WebsiteDataStore.HttpCookieStore;
435-
cookieStore.DeleteCookie(new Cookie(name, ".", path, domain));
440+
cookieStore.DeleteCookie(cookie);
436441
}
437442

438443
public async Task<IReadOnlyList<Cookie>> GetCookiesAsync()

src/Avalonia.Controls.WebView.Core/NativeWebViewCookieManager.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ internal NativeWebViewCookieManager(IWebViewAdapterWithCookieManager webView)
1313
}
1414

1515
public void AddOrUpdateCookie(System.Net.Cookie cookie) => _webView.AddOrUpdateCookie(cookie);
16+
[System.Obsolete("Use DeleteCookie(System.Net.Cookie cookie) instead")]
1617
public void DeleteCookie(string name, string domain, string path) => _webView.DeleteCookie(name, domain, path);
18+
public void DeleteCookie(System.Net.Cookie cookie) => _webView.DeleteCookie(cookie);
1719
public Task<IReadOnlyList<System.Net.Cookie>> GetCookiesAsync() => _webView.GetCookiesAsync();
1820
}

src/Avalonia.Controls.WebView.Core/Win/WebView2/WebView2BaseAdapter.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -385,6 +385,11 @@ public void DeleteCookie(string name, string domain, string path)
385385
}
386386
}
387387

388+
public void DeleteCookie(Cookie cookie)
389+
{
390+
DeleteCookie(cookie.Name, cookie.Domain, cookie.Path);
391+
}
392+
388393
public async Task<IReadOnlyList<Cookie>> GetCookiesAsync()
389394
{
390395
if (TryGetWebView2() is ICoreWebView2_2 webView2)

0 commit comments

Comments
 (0)