serenity/Userland/Applications
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
..
3DFileViewer Everywhere: Use east const in more places 2024-04-19 06:31:19 -04:00
About About: Display Application's Icon in File Manager 2023-09-02 16:27:08 +01:00
AnalogClock AnalogClock: Add feature to change and show time zone 2024-03-25 14:09:23 -06:00
Assistant LibCore: Stop obsessing about tiny OOMs in Core::Timer 2024-04-17 07:16:52 +02:00
Browser Ladybird+LibWebView: Introduce a cache for cookies backed by SQL storage 2024-05-01 07:06:26 +02:00
BrowserSettings AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00
Calculator AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00
Calendar Everywhere: Use east const in more places 2024-04-19 06:31:19 -04:00
CalendarSettings Userland: Port to automatic GML initializer where possible 2024-01-29 05:21:48 -07:00
CertificateSettings LibCrypto: Store ASN1 certificate timestamps as UnixDateTime 2024-03-08 00:41:23 +01:00
CharacterMap AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00
ClockSettings LibGUI+Everywhere: Rename the 'style' frame property to 'frame_style' 2024-04-30 17:46:41 -06:00
CrashReporter Meta+Userland: Make LibELF a proper library on Serenity 2024-04-26 19:08:13 -06:00
Debugger Everywhere: Use east const in more places 2024-04-19 06:31:19 -04:00
DisplaySettings LibGUI+Everywhere: Rename the 'style' frame property to 'frame_style' 2024-04-30 17:46:41 -06:00
Escalator Escalator: Allow failed password attempts to be retried 2024-03-04 13:25:22 -05:00
FileManager FileManager: Launch applications with their AppFile-specified arguments 2024-04-30 17:43:14 -06:00
FontEditor LibGUI+Everywhere: Rename the 'style' frame property to 'frame_style' 2024-04-30 17:46:41 -06:00
GamesSettings GamesSettings: Use on_change callback for resetting cards defaults 2024-04-08 09:35:55 -06:00
Help LibLocale: Statically link LibLocaleData into LibLocale 2024-04-21 13:34:04 -06:00
HexEditor HexEditor: Add option to display offsets in decimal or hexadecimal 2024-04-09 09:24:23 +02:00
ImageViewer Userland: Remove remaining callers of synchronous ImageDecoder API 2024-04-23 12:32:04 -06:00
KeyboardMapper Everywhere: Use east const in more places 2024-04-19 06:31:19 -04:00
KeyboardSettings KeyboardSettings: Port to GML compiler 2024-01-19 17:03:30 +01:00
Magnifier AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00
Mail Everywhere: Use east const in more places 2024-04-19 06:31:19 -04:00
MailSettings MailSettingsWidget: Port to GML compilation 2024-04-15 14:01:13 +02:00
Maps AK+Userland: Remove some needlessly explicit conversions to StringView 2024-04-04 11:23:21 +02:00
MapsSettings AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00
MouseSettings LibCore: Stop obsessing about tiny OOMs in Core::Timer 2024-04-17 07:16:52 +02:00
NetworkSettings NetworkSettings: Use on_change when switching adapter 2024-04-08 09:35:55 -06:00
PartitionEditor PartitionEditor: Show better error when can't find partition table 2024-01-11 20:57:40 +00:00
PDFViewer AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00
Piano Everywhere: Use east const in more places 2024-04-19 06:31:19 -04:00
PixelPaint Userland: Remove remaining callers of synchronous ImageDecoder API 2024-04-23 12:32:04 -06:00
Presenter AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00
Run Run: Don't wait for child process to end when adding it to history 2024-05-01 06:42:59 +02:00
Screenshot Screenshot: Add graphical frontend to shot 2024-04-17 11:25:40 -06:00
Settings Settings: Add fullscreen option 2024-01-14 15:18:43 -07:00
SoundPlayer Userland: Remove remaining callers of synchronous ImageDecoder API 2024-04-23 12:32:04 -06:00
SpaceAnalyzer Everywhere: Use east const in more places 2024-04-19 06:31:19 -04:00
Spreadsheet Everywhere: Use east const in more places 2024-04-19 06:31:19 -04:00
SystemMonitor Applications: Add fullscreen option to Utilities 2024-01-14 15:18:43 -07:00
Terminal LibCore: Stop obsessing about tiny OOMs in Core::Timer 2024-04-17 07:16:52 +02:00
TerminalSettings Userland: Propagate errors with TRY() where possible 2024-02-14 17:46:06 -05:00
TextEditor AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00
ThemeEditor AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00
VideoPlayer AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00
Welcome AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00
CMakeLists.txt Screenshot: Add graphical frontend to shot 2024-04-17 11:25:40 -06:00