1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-01 08:38:10 +00:00
serenity/Userland/Services/WebContent
Timothy Flynn 8b32f4ae7a LibWebView+WebContent: Let the WebView client broadcast when it painted
When the WebContent process has painted to its shared bitmaps, it sends
a synchronous IPC to the browser process to let the chrome paint. It is
synchronous to ensure the WC process doesn't paint onto the backing
bitmap again while it is being displayed.

However, this can cause a crash at exit if the browser process quits
while the WC process is waiting for a response to this IPC.

This patch makes the painting logic asynchronous by letting the browser
process broadcast when it has finished handling the paint IPC. The WC
process will not paint anything again until it receives that message. If
it had tried to repaint while waiting for that message, that paint will
be deferred until it arrives.
2024-01-08 00:51:59 +01:00
..
CMakeLists.txt LibWeb+WebContent: Plumb ability for WebContent process to hold N pages 2023-12-01 20:47:44 +01:00
ConnectionFromClient.cpp LibWebView+WebContent: Let the WebView client broadcast when it painted 2024-01-08 00:51:59 +01:00
ConnectionFromClient.h LibWebView+WebContent: Let the WebView client broadcast when it painted 2024-01-08 00:51:59 +01:00
ConsoleGlobalEnvironmentExtensions.cpp Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
ConsoleGlobalEnvironmentExtensions.h LibJS: Make Cell::initialize() return void 2023-08-08 07:39:11 +02:00
Documentation.txt LibWeb: Remove the InProcessWebView widget 2022-04-06 19:35:07 +02:00
Forward.h LibWeb+WebContent: Plumb ability for WebContent process to hold N pages 2023-12-01 20:47:44 +01:00
ImageCodecPluginSerenity.cpp Userland: Return empty if ImageDecoder client receives an invalid frame 2023-10-03 08:33:53 +02:00
ImageCodecPluginSerenity.h LibWeb+LibWebView+WebContent: Add Web::Platform::ImageCodecPlugin 2022-09-16 15:15:50 +02:00
main.cpp LibJS: Never give back virtual memory once it belongs to a cell type 2023-12-31 15:35:56 +01:00
PageClient.cpp LibWebView+WebContent: Let the WebView client broadcast when it painted 2024-01-08 00:51:59 +01:00
PageClient.h LibWebView+WebContent: Let the WebView client broadcast when it painted 2024-01-08 00:51:59 +01:00
PageHost.cpp LibWeb: Make Web::PageClient GC-allocated 2023-12-05 09:38:32 +01:00
PageHost.h LibWeb: Make Web::PageClient GC-allocated 2023-12-05 09:38:32 +01:00
WebContentClient.ipc LibWebView+WebContent: Let the WebView client broadcast when it painted 2024-01-08 00:51:59 +01:00
WebContentConsoleClient.cpp Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
WebContentConsoleClient.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
WebContentServer.ipc LibWebView+WebContent: Let the WebView client broadcast when it painted 2024-01-08 00:51:59 +01:00
WebDriverClient.ipc LibWeb: Stub out Release Actions 2023-08-21 13:22:04 -06:00
WebDriverConnection.cpp Everywhere: Use to_number<T> instead of to_{int,uint,float,double} 2023-12-23 20:41:07 +01:00
WebDriverConnection.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
WebDriverServer.ipc WebContent: Add a very-empty WebDriver IPC class to WebContent 2022-11-08 19:58:34 -05:00