[webkit-changes] [WebKit/WebKit] cdf8f1: Cherry-pick 283061 at main (b00d19a0d891). https://bu...
Lauro Moura
noreply at github.com
Tue Sep 3 00:08:50 PDT 2024
Branch: refs/heads/webkitglib/2.46
Home: https://github.com/WebKit/WebKit
Commit: cdf8f11cd1d858124bfc4a305d091bb7a5b3c62f
https://github.com/WebKit/WebKit/commit/cdf8f11cd1d858124bfc4a305d091bb7a5b3c62f
Author: Lauro Moura <lmoura at igalia.com>
Date: 2024-09-03 (Tue, 03 Sep 2024)
Changed paths:
M Source/WebDriver/glib/SessionHostGlib.cpp
Log Message:
-----------
Cherry-pick 283061 at main (b00d19a0d891). https://bugs.webkit.org/show_bug.cgi?id=278804
[WebDriver][GLIB] Segfault with connection being closed by empty SetTargetList not related to disconnection
https://bugs.webkit.org/show_bug.cgi?id=278804
Reviewed by Carlos Garcia Campos.
282489 at main improved the teardown process for WebDriver sessions, but
assumed `SessionHostGlib.cpp` `setTargetList` would receive an empty
target list when the `RemoteInspector` requested `WebDriverService` to
disconnect.
But `setTargetList` might receive an empty list despite being still
connected, as the message handler callback filters non-Automation
targets out of the list before forwarding the list to the
`setTargetList` method.
For example, testing with GTK's MiniBrowser it always sends a first
listing of a single WebPage target before sending the Automation
target.
Assuming the connection had been disconnected, `SessionHostGlib` then
called `connectionDidClose`, leaving it in an inconsistent state when
the proper `Automation` target arrived in a following `setTargetList`
call, leading to segfaults.
This commit changes the behavior to call `connectionDidClose` for empty
lists _only_ when we already had received a valid Automation target before
and we're connected to it.
Also some drive-by cleanups, removing uneeded assertions already handled
by earlier checks and clarifying comments.
* Source/WebDriver/glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::setTargetList):
Canonical link: https://commits.webkit.org/283061@main
Canonical link: https://commits.webkit.org/282416.42@webkitglib/2.46
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list