mirror of
https://github.com/fergalmoran/ladybird.git
synced 2025-12-25 19:04:58 +00:00
LibWeb: Stop deadlocking on unit tests
Unit tests on macOS deadlock because the WebContent process is waiting for the next opportunity to render before a screenshot is taken. For some reason unknown to myself, this opportunity never arrives. In order to not deadlock, screenshot requests are now also processed separately from rendering.
This commit is contained in:
committed by
Alexander Kalenik
parent
7de669dc07
commit
31698281b6
@@ -12,6 +12,7 @@
|
||||
#include <LibWeb/HTML/BrowsingContext.h>
|
||||
#include <LibWeb/HTML/EventLoop/EventLoop.h>
|
||||
#include <LibWeb/HTML/Scripting/Environments.h>
|
||||
#include <LibWeb/HTML/TraversableNavigable.h>
|
||||
#include <LibWeb/HTML/Window.h>
|
||||
#include <LibWeb/HighResolutionTime/Performance.h>
|
||||
#include <LibWeb/HighResolutionTime/TimeOrigin.h>
|
||||
@@ -336,6 +337,13 @@ void EventLoop::process()
|
||||
}
|
||||
});
|
||||
|
||||
// FIXME: Not in the spec: If there is a screenshot request queued, process it now.
|
||||
// This prevents tests deadlocking on screenshot requests on macOS.
|
||||
for (auto& document : docs) {
|
||||
if (document->page().top_level_traversable()->needs_repaint())
|
||||
document->page().client().process_screenshot_requests();
|
||||
}
|
||||
|
||||
// 13. If all of the following are true
|
||||
// - this is a window event loop
|
||||
// - there is no task in this event loop's task queues whose document is fully active
|
||||
|
||||
Reference in New Issue
Block a user