serenity/Userland/Applications/Browser
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
..
History Browser: Use LibWeb's history state for history navigation 2024-04-14 18:53:58 -07:00
BookmarksBarWidget.cpp Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
BookmarksBarWidget.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
Browser.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
BrowserWindow.cpp Ladybird: Slightly increase the size of the Task Manager window 2024-04-22 14:46:10 -06:00
BrowserWindow.gml Userland: Set tab-widget properties in GML instead of code 2022-05-11 20:16:43 +02:00
BrowserWindow.h Browser: Add a simple TaskManager window for tracking helper proccesses 2024-04-02 09:52:34 -06:00
CMakeLists.txt LibLocale: Statically link LibLocaleData into LibLocale 2024-04-21 13:34:04 -06:00
CookiesModel.cpp Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
CookiesModel.h LibGUI+Userland: Propagate errors in Model::column_name() 2023-06-14 17:53:59 +02:00
DownloadWidget.cpp AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00
DownloadWidget.h AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00
EditBookmark.gml Userland: Replace empty GUI::Widgets in GML with GUI::Layout::Spacer 2022-09-29 08:31:15 -04:00
IconBag.cpp Browser: Add a simple TaskManager window for tracking helper proccesses 2024-04-02 09:52:34 -06:00
IconBag.h Browser: Add a simple TaskManager window for tracking helper proccesses 2024-04-02 09:52:34 -06:00
InspectorWidget.cpp Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
InspectorWidget.h Ladybird+LibWebView: Add an Inspector action to clone a DOM node 2023-12-07 23:16:34 +01:00
main.cpp Ladybird+LibWebView: Introduce a cache for cookies backed by SQL storage 2024-05-01 07:06:26 +02:00
StorageModel.cpp Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
StorageModel.h LibWeb: Port Storage interface from DeprecatedString to String 2023-08-29 10:05:02 +02:00
StorageWidget.cpp LibWeb: Port Storage interface from DeprecatedString to String 2023-08-29 10:05:02 +02:00
StorageWidget.gml Browser+LibWeb+WebContent: Add ability to inspect session storage 2022-05-28 23:54:06 +01:00
StorageWidget.h LibWeb: Port Storage interface from DeprecatedString to String 2023-08-29 10:05:02 +02:00
Tab.cpp Browser: Use LibWeb's history state for history navigation 2024-04-14 18:53:58 -07:00
Tab.gml LibGUI+Everywhere: Rename the 'style' frame property to 'frame_style' 2024-04-30 17:46:41 -06:00
Tab.h Browser: Use LibWeb's history state for history navigation 2024-04-14 18:53:58 -07:00
TaskManagerWidget.cpp LibCore: Stop obsessing about tiny OOMs in Core::Timer 2024-04-17 07:16:52 +02:00
TaskManagerWidget.h Browser: Add a simple TaskManager window for tracking helper proccesses 2024-04-02 09:52:34 -06:00
URLBox.cpp AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00
URLBox.h LibGUI+Browser: Move GUI::UrlBox to the Browser application 2023-10-20 07:18:54 +02:00
WindowActions.cpp Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
WindowActions.h Everywhere: Stop using NonnullRefPtrVector 2023-03-06 23:46:35 +01:00