Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: e0ad2634cfa503cf233cb1358d9677c0e3142361
https://github.com/WebKit/WebKit/commit/e0ad2634cfa503cf233cb1358d9677c0e3142361
Author: Yury Semikhatsky <[email protected]>
Date: 2026-07-16 (Thu, 16 Jul 2026)
Changed paths:
M LayoutTests/platform/glib/TestExpectations
M
LayoutTests/platform/glib/editing/selection/contains-boundaries-expected.txt
M
LayoutTests/platform/glib/fast/events/standalone-image-drag-to-editable-expected.txt
M LayoutTests/platform/glib/fast/lists/drag-into-marker-expected.txt
M LayoutTests/platform/gtk/TestExpectations
A
LayoutTests/platform/gtk/editing/selection/contains-boundaries-expected.txt
A
LayoutTests/platform/gtk/fast/events/standalone-image-drag-to-editable-expected.txt
A LayoutTests/platform/gtk/fast/lists/drag-into-marker-expected.txt
M LayoutTests/platform/wpe/TestExpectations
R LayoutTests/platform/wpe/editing/selection/4895428-1-expected.txt
R LayoutTests/platform/wpe/editing/selection/4895428-4-expected.txt
M Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp
M Source/WebKit/UIProcess/API/wpe/PageClientImpl.h
M Source/WebKit/UIProcess/API/wpe/WPEWebView.cpp
M Source/WebKit/UIProcess/API/wpe/WPEWebView.h
M Source/WebKit/UIProcess/API/wpe/WPEWebViewLegacy.cpp
M Source/WebKit/UIProcess/API/wpe/WPEWebViewPlatform.cpp
M Source/WebKit/UIProcess/PageClient.h
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.h
M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
Log Message:
-----------
[WPE] Route drag-and-drop through the GLib SelectionData IPC path
https://bugs.webkit.org/show_bug.cgi?id=319275
Reviewed by Claudio Saavedra.
Widen the drag guards from PLATFORM(GTK) to PLATFORM(GTK) || PLATFORM(WPE)
(and their complements) so WPE uses the same SelectionData drag IPC as
GTK. No behavior change for GTK.
WPE has no platform drag-and-drop backend, so PageClientImpl::startDrag
stores the drag SelectionData on the view and the view drives the drag
from the mouse events it already receives: dragUpdated() while the mouse
moves, then performDragOperation() and dragEnded() on mouse up. While a
drag is in flight the mouse events are consumed by the drag, like a
platform pointer grab would, so the page does not see them and the
dragged selection is preserved. dragEnded() is passed the resolved drag
operation rather than the source operation mask, which would trip an
assertion in DataTransfer::setDestinationOperationMask(). The pending
drag data is dropped on navigation.
Unskip the drag-and-drop tests that now pass. Move the expectation
entries for tests that pass on WPE but still fail on GTK from the glib
expectations to the gtk ones. Similarly, move the baselines of three
tests to the gtk directory and land the correct results in glib: WPE's
output now matches the Cocoa ports' now that the drop actually lands,
while the old glib baselines captured GTK WebKitTestRunner runs where it
never did. The remaining skipped tests need features this path does not
implement yet (autoscroll, subframes, drag images) or are Cocoa-specific
(data detectors).
* LayoutTests/platform/glib/TestExpectations:
* LayoutTests/platform/glib/editing/selection/contains-boundaries-expected.txt:
*
LayoutTests/platform/glib/fast/events/standalone-image-drag-to-editable-expected.txt:
* LayoutTests/platform/glib/fast/lists/drag-into-marker-expected.txt:
* LayoutTests/platform/gtk/TestExpectations:
* LayoutTests/platform/gtk/editing/selection/contains-boundaries-expected.txt:
Copied from
LayoutTests/platform/glib/editing/selection/contains-boundaries-expected.txt.
*
LayoutTests/platform/gtk/fast/events/standalone-image-drag-to-editable-expected.txt:
Copied from
LayoutTests/platform/glib/fast/events/standalone-image-drag-to-editable-expected.txt.
* LayoutTests/platform/gtk/fast/lists/drag-into-marker-expected.txt: Copied
from LayoutTests/platform/glib/fast/lists/drag-into-marker-expected.txt.
* LayoutTests/platform/wpe/TestExpectations:
* LayoutTests/platform/wpe/editing/selection/4895428-1-expected.txt: Removed.
* LayoutTests/platform/wpe/editing/selection/4895428-4-expected.txt: Removed.
* Source/WebKit/UIProcess/API/wpe/PageClientImpl.cpp:
(WebKit::PageClientImpl::startDrag):
* Source/WebKit/UIProcess/API/wpe/PageClientImpl.h:
* Source/WebKit/UIProcess/API/wpe/WPEWebView.cpp:
(WKWPE::View::willStartLoad):
(WKWPE::View::setDragData):
(WKWPE::View::updateDrag):
* Source/WebKit/UIProcess/API/wpe/WPEWebView.h:
* Source/WebKit/UIProcess/API/wpe/WPEWebViewLegacy.cpp:
(WKWPE::ViewLegacy::ViewLegacy):
* Source/WebKit/UIProcess/API/wpe/WPEWebViewPlatform.cpp:
(WKWPE::ViewPlatform::handleEvent):
* Source/WebKit/UIProcess/PageClient.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::performDragOperation):
(WebKit::WebPageProxy::performDragControllerAction):
(WebKit::WebPageProxy::startDrag):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
Canonical link: https://commits.webkit.org/317329@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications