ladybird/Ladybird/AppKit
Timothy Flynn 398ae75f9a Ladybird+LibWebView: Introduce a cache for cookies backed by SQL storage
Now that the chrome process is a singleton on all platforms, we can
safely add a cache to the CookieJar to greatly speed up access. The way
this works is we read all cookies upfront from the database. As cookies
are updated by the web, we store a list of "dirty" cookies that need to
be flushed to the database. We do that synchronization every 30 seconds
and at shutdown.

There's plenty of room for improvement here, some of which is marked
with FIXMEs in the CookieJar.

Before these changes, in a SQL database populated with 300 cookies,
browsing to https://twinings.co.uk/ WebContent spent:

    19,806ms waiting for a get-cookie response
    505ms waiting for a set-cookie response

With these changes, it spends:

    24ms waiting for a get-cookie response
    15ms waiting for a set-cookie response
2024-05-01 07:06:26 +02:00
..
Application Ladybird+LibWebView: Introduce a cache for cookies backed by SQL storage 2024-05-01 07:06:26 +02:00
System Ladybird: Implement an AppKit chrome for macOS :^) 2023-08-22 21:36:19 -04:00
UI Ladybird/AppKit: Track the currently active tab 2024-04-30 06:02:15 -06:00
Utilities Ladybird/AppKit: Implement the <input type=file> UI 2024-02-26 14:18:49 +01:00
main.mm Ladybird/AppKit: Add support for a singleton chrome process 2024-04-30 06:02:15 -06:00