ladybird/Userland/Libraries/LibWebView
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
..
Attribute.cpp LibWebView+WebContent: Add APIs to manipulate DOM nodes 2023-12-04 01:33:57 +01:00
Attribute.h LibWebView+WebContent: Add APIs to manipulate DOM nodes 2023-12-04 01:33:57 +01:00
ChromeProcess.cpp LibWebView: Create plumbing for a single UI process 2024-04-27 20:32:12 -04:00
ChromeProcess.h LibWebView: Create plumbing for a single UI process 2024-04-27 20:32:12 -04:00
CMakeLists.txt LibWebView: Create plumbing for a single UI process 2024-04-27 20:32:12 -04:00
CookieJar.cpp Ladybird+LibWebView: Introduce a cache for cookies backed by SQL storage 2024-05-01 07:06:26 +02:00
CookieJar.h Ladybird+LibWebView: Introduce a cache for cookies backed by SQL storage 2024-05-01 07:06:26 +02:00
Database.cpp Ladybird+LibWebView: Move SQLServer launcher to Ladybird 2024-04-22 14:46:10 -06:00
Database.h Ladybird+LibWebView: Move SQLServer launcher to Ladybird 2024-04-22 14:46:10 -06:00
Forward.h Ladybird+Userland: Remove use of unnecessary fd passing socket concept 2024-04-19 16:38:55 -04:00
InspectorClient.cpp LibWebView: Set a title on the Inspector and Task Manager views 2024-04-22 14:46:10 -06:00
InspectorClient.h LibWebView: Protect the Inspector against rapid inspection requests 2024-03-04 10:49:43 +01:00
Native.css
OutOfProcessWebView.cpp Ladybird+Userland: Remove use of unnecessary fd passing socket concept 2024-04-19 16:38:55 -04:00
OutOfProcessWebView.h AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00
ProcessHandle.cpp LibWebView+WebContent: Notify UI process about WebContent PID explicitly 2024-04-02 09:52:34 -06:00
ProcessHandle.h LibWebView: Explicitly inititalize the ProcessHandle PID 2024-04-22 14:46:10 -06:00
ProcessInfo.h LibWebView: Display each tab's title in the Task Manager 2024-04-22 14:46:10 -06:00
ProcessManager.cpp LibWebView: Display each tab's title in the Task Manager 2024-04-22 14:46:10 -06:00
ProcessManager.h LibCore+LibWebView: Move process statistics to LibCore 2024-04-22 14:46:10 -06:00
RequestServerAdapter.cpp AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00
RequestServerAdapter.h AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00
SearchEngine.cpp LibWebView: Add an API to format a search query for UI display 2023-10-24 07:28:30 +02:00
SearchEngine.h LibWebView: Add an API to format a search query for UI display 2023-10-24 07:28:30 +02:00
SourceHighlighter.cpp LibWebView: Stop tokenizing the source HTML once we hit an EOF token 2024-03-23 20:58:31 +01:00
SourceHighlighter.h AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00
UIProcessClient.ipc LibWebView: Create plumbing for a single UI process 2024-04-27 20:32:12 -04:00
UIProcessServer.ipc LibWebView: Create plumbing for a single UI process 2024-04-27 20:32:12 -04:00
URL.cpp LibURL+LibUnicode+LibWebView: Handle punycode directly in LibURL 2024-03-26 12:25:21 -04:00
URL.h AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00
UserAgent.cpp
UserAgent.h
ViewImplementation.cpp LibIPC+Userland: Make IPC::File always own its file descriptor 2024-04-19 06:34:07 -04:00
ViewImplementation.h Ladybird+Userland: Remove use of unnecessary fd passing socket concept 2024-04-19 16:38:55 -04:00
WebContentClient.cpp LibWebView: Display each tab's title in the Task Manager 2024-04-22 14:46:10 -06:00
WebContentClient.h LibWebView: Display each tab's title in the Task Manager 2024-04-22 14:46:10 -06:00
WebSocketClientAdapter.cpp Everywhere: Merge the WebSocket service into RequestServer 2024-03-06 10:07:27 +01:00
WebSocketClientAdapter.h Everywhere: Merge the WebSocket service into RequestServer 2024-03-06 10:07:27 +01:00