Firefox can split a DevTools protocol packet across multiple TCP reads. The previous reader only checked that some data was available, then tried to synchronously read the whole length-prefixed packet from the readiness callback. Once the socket was nonblocking this could make startup flaky when Firefox opened the inspector. Buffer incoming bytes instead, and only dispatch messages once a full length-prefixed JSON payload has arrived. Add a protocol test that sends a request in two fragments through the real DevTools server.
7 lines
211 B
CMake
7 lines
211 B
CMake
set(TEST_SOURCES
|
|
TestDevToolsProtocol.cpp
|
|
)
|
|
|
|
foreach(source IN LISTS TEST_SOURCES)
|
|
ladybird_test("${source}" LibDevTools LIBS LibDevTools LibHTTP LibRequests LibThreading LibWeb LibWebView)
|
|
endforeach()
|