[webkit-changes] [WebKit/WebKit] 567bd6: [WPE][Qt] Add support for building QtWPE against Qt 6

Nikolas Zimmermann noreply at github.com
Wed May 22 09:18:18 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 567bd6a58583b3944fc027e0d493d117aefb5337
      https://github.com/WebKit/WebKit/commit/567bd6a58583b3944fc027e0d493d117aefb5337
  Author: Nikolas Zimmermann <nzimmermann at igalia.com>
  Date:   2024-05-22 (Wed, 22 May 2024)

  Changed paths:
    M Source/WebKit/PlatformWPE.cmake
    R Source/WebKit/UIProcess/API/wpe/qt/CMakeLists.txt
    R Source/WebKit/UIProcess/API/wpe/qt/WPEQmlExtensionPlugin.cpp
    R Source/WebKit/UIProcess/API/wpe/qt/WPEQmlExtensionPlugin.h
    R Source/WebKit/UIProcess/API/wpe/qt/WPEQtView.cpp
    R Source/WebKit/UIProcess/API/wpe/qt/WPEQtView.h
    R Source/WebKit/UIProcess/API/wpe/qt/WPEQtViewBackend.cpp
    R Source/WebKit/UIProcess/API/wpe/qt/WPEQtViewBackend.h
    R Source/WebKit/UIProcess/API/wpe/qt/WPEQtViewLoadRequest.cpp
    R Source/WebKit/UIProcess/API/wpe/qt/WPEQtViewLoadRequest.h
    R Source/WebKit/UIProcess/API/wpe/qt/WPEQtViewLoadRequestPrivate.h
    R Source/WebKit/UIProcess/API/wpe/qt/qmldir
    A Source/WebKit/UIProcess/API/wpe/qt5/CMakeLists.txt
    A Source/WebKit/UIProcess/API/wpe/qt5/WPEQmlExtensionPlugin.cpp
    A Source/WebKit/UIProcess/API/wpe/qt5/WPEQmlExtensionPlugin.h
    A Source/WebKit/UIProcess/API/wpe/qt5/WPEQtView.cpp
    A Source/WebKit/UIProcess/API/wpe/qt5/WPEQtView.h
    A Source/WebKit/UIProcess/API/wpe/qt5/WPEQtViewBackend.cpp
    A Source/WebKit/UIProcess/API/wpe/qt5/WPEQtViewBackend.h
    A Source/WebKit/UIProcess/API/wpe/qt5/WPEQtViewLoadRequest.cpp
    A Source/WebKit/UIProcess/API/wpe/qt5/WPEQtViewLoadRequest.h
    A Source/WebKit/UIProcess/API/wpe/qt5/WPEQtViewLoadRequestPrivate.h
    A Source/WebKit/UIProcess/API/wpe/qt5/qmldir
    A Source/WebKit/UIProcess/API/wpe/qt6/WPEDisplayQtQuick.cpp
    A Source/WebKit/UIProcess/API/wpe/qt6/WPEDisplayQtQuick.h
    A Source/WebKit/UIProcess/API/wpe/qt6/WPEQmlExtensionPlugin.cpp
    A Source/WebKit/UIProcess/API/wpe/qt6/WPEQmlExtensionPlugin.h
    A Source/WebKit/UIProcess/API/wpe/qt6/WPEQtView.cpp
    A Source/WebKit/UIProcess/API/wpe/qt6/WPEQtView.h
    A Source/WebKit/UIProcess/API/wpe/qt6/WPEQtViewLoadRequest.cpp
    A Source/WebKit/UIProcess/API/wpe/qt6/WPEQtViewLoadRequest.h
    A Source/WebKit/UIProcess/API/wpe/qt6/WPEQtViewLoadRequestPrivate.h
    A Source/WebKit/UIProcess/API/wpe/qt6/WPEViewQtQuick.cpp
    A Source/WebKit/UIProcess/API/wpe/qt6/WPEViewQtQuick.h
    A Source/WebKit/UIProcess/API/wpe/qt6/qmldir
    M Source/cmake/OptionsWPE.cmake
    M Tools/MiniBrowser/wpe/CMakeLists.txt
    R Tools/MiniBrowser/wpe/qt/CMakeLists.txt
    R Tools/MiniBrowser/wpe/qt/main.cpp
    R Tools/MiniBrowser/wpe/qt/main.qml
    R Tools/MiniBrowser/wpe/qt/qml.qrc
    A Tools/MiniBrowser/wpe/qt5/CMakeLists.txt
    A Tools/MiniBrowser/wpe/qt5/main.cpp
    A Tools/MiniBrowser/wpe/qt5/main.qml
    A Tools/MiniBrowser/wpe/qt5/qml.qrc
    A Tools/MiniBrowser/wpe/qt6/CMakeLists.txt
    A Tools/MiniBrowser/wpe/qt6/main.cpp
    A Tools/MiniBrowser/wpe/qt6/main.qml
    A Tools/MiniBrowser/wpe/qt6/qml.qrc
    M Tools/Scripts/run-qt-wpe-minibrowser
    M Tools/Scripts/webkitdirs.pm
    M Tools/Scripts/webkitpy/style/checker.py
    M Tools/TestWebKitAPI/Tests/WPEQt/WPEQtTest.cpp
    M Tools/TestWebKitAPI/Tests/WPEQt/WPEQtTest.h
    M Tools/TestWebKitAPI/glib/CMakeLists.txt

  Log Message:
  -----------
  [WPE][Qt] Add support for building QtWPE against Qt 6
https://bugs.webkit.org/show_bug.cgi?id=270161

Reviewed by Carlos Garcia Campos.

- Keep the existing Qt 5 based WPEQt implementation and rename:
  - Source/WebKit/UIProcess/API/wpe/qt -> Source/WebKit/UIProcess/API/wpe/qt5
  - Tools/MiniBrowser/wpe/qt -> Tools/MiniBrowser/wpe/qt5

- Add a new WPEQt implementation for Qt 6, based on the new WPE platform
  API, that was recently developed, not relying on WPEBackend(-fdo) anymore.

  Touch / wheel / hover / mouse / keyboard events are supported, only
  keyboard+mouse events were tested so far.

- Polish UI: Add navigation buttons (back|forward|reload) / URL bar for
  Qt 6 MiniBrowser

- Make the WebKitWebView ref-counted in WPEQtView, by wrapping in
  GRefPtr (needs some moc related plumbing to allow for config.h
  inclusion, which is a pre-requisite to get wtf/ headers includable).

Tested using:
build-webkit --wpe --debug --cmakeargs "-DUSE_QT6=ON|OFF"
run-qt-wpe-minibrowser --debug https://www.igalia.com

Covered by existing tests, no change in default behavior.

* Source/WebKit/PlatformWPE.cmake:
* Source/WebKit/UIProcess/API/wpe/qt5/CMakeLists.txt: Renamed from Source/WebKit/UIProcess/API/wpe/qt/CMakeLists.txt.
* Source/WebKit/UIProcess/API/wpe/qt5/WPEQmlExtensionPlugin.cpp: Copied from Source/WebKit/UIProcess/API/wpe/qt/WPEQmlExtensionPlugin.cpp.
* Source/WebKit/UIProcess/API/wpe/qt5/WPEQmlExtensionPlugin.h: Copied from Source/WebKit/UIProcess/API/wpe/qt/WPEQmlExtensionPlugin.h.
* Source/WebKit/UIProcess/API/wpe/qt5/WPEQtView.cpp: Copied from Source/WebKit/UIProcess/API/wpe/qt/WPEQtView.cpp.
* Source/WebKit/UIProcess/API/wpe/qt5/WPEQtView.h: Copied from Source/WebKit/UIProcess/API/wpe/qt/WPEQtView.h.
* Source/WebKit/UIProcess/API/wpe/qt5/WPEQtViewBackend.cpp: Renamed from Source/WebKit/UIProcess/API/wpe/qt/WPEQtViewBackend.cpp.
(WPEQtViewBackend::texture):
* Source/WebKit/UIProcess/API/wpe/qt5/WPEQtViewBackend.h: Renamed from Source/WebKit/UIProcess/API/wpe/qt/WPEQtViewBackend.h.
* Source/WebKit/UIProcess/API/wpe/qt5/WPEQtViewLoadRequest.cpp: Copied from Source/WebKit/UIProcess/API/wpe/qt/WPEQtViewLoadRequest.cpp.
* Source/WebKit/UIProcess/API/wpe/qt5/WPEQtViewLoadRequest.h: Copied from Source/WebKit/UIProcess/API/wpe/qt/WPEQtViewLoadRequest.h.
* Source/WebKit/UIProcess/API/wpe/qt5/WPEQtViewLoadRequestPrivate.h: Copied from Source/WebKit/UIProcess/API/wpe/qt/WPEQtViewLoadRequestPrivate.h.
* Source/WebKit/UIProcess/API/wpe/qt5/qmldir: Copied from Source/WebKit/UIProcess/API/wpe/qt/qmldir.
* Source/WebKit/UIProcess/API/wpe/qt6/WPEDisplayQtQuick.cpp: Added.
(wpeDisplayQtQuickConnect):
(wpeDisplayQtQuickCreateView):
(wpeDisplayQtQuickGetEGLDisplay):
(wpeDisplayQtQuickGetDRMDevice):
(wpeDisplayQtQuickGetDRMRenderNode):
(wpe_display_qtquick_class_init):
(wpe_display_qtquick_new):
* Source/WebKit/UIProcess/API/wpe/qt6/WPEDisplayQtQuick.h: Added.
* Source/WebKit/UIProcess/API/wpe/qt6/WPEQmlExtensionPlugin.cpp: Renamed from Source/WebKit/UIProcess/API/wpe/qt/WPEQmlExtensionPlugin.cpp.
(WPEQmlExtensionPlugin::registerTypes):
* Source/WebKit/UIProcess/API/wpe/qt6/WPEQmlExtensionPlugin.h: Renamed from Source/WebKit/UIProcess/API/wpe/qt/WPEQmlExtensionPlugin.h.
* Source/WebKit/UIProcess/API/wpe/qt6/WPEQtView.cpp: Renamed from Source/WebKit/UIProcess/API/wpe/qt/WPEQtView.cpp.
(WPEQtView::WPEQtView):
(WPEQtView::~WPEQtView):
(WPEQtView::geometryChange):
(WPEQtView::configureWindow):
(WPEQtView::createWebView):
(WPEQtView::notifyUrlChangedCallback):
(WPEQtView::notifyTitleChangedCallback):
(WPEQtView::notifyLoadProgressCallback):
(WPEQtView::notifyLoadChangedCallback):
(WPEQtView::notifyLoadFailedCallback):
(WPEQtView::didUpdateScene):
(WPEQtView::updatePaintNode):
(WPEQtView::url const):
(WPEQtView::setUrl):
(WPEQtView::loadProgress const):
(WPEQtView::title const):
(WPEQtView::canGoBack const):
(WPEQtView::isLoading const):
(WPEQtView::canGoForward const):
(WPEQtView::goBack):
(WPEQtView::goForward):
(WPEQtView::reload):
(WPEQtView::stop):
(WPEQtView::loadHtml):
(JavascriptCallbackData::JavascriptCallbackData):
(jsAsyncReadyCallback):
(WPEQtView::runJavaScript):
(WPEQtView::mousePressEvent):
(WPEQtView::mouseMoveEvent):
(WPEQtView::mouseReleaseEvent):
(WPEQtView::hoverEnterEvent):
(WPEQtView::hoverLeaveEvent):
(WPEQtView::hoverMoveEvent):
(WPEQtView::wheelEvent):
(WPEQtView::keyPressEvent):
(WPEQtView::keyReleaseEvent):
(WPEQtView::touchEvent):
(WPEQtView::webView const):
* Source/WebKit/UIProcess/API/wpe/qt6/WPEQtView.h: Renamed from Source/WebKit/UIProcess/API/wpe/qt/WPEQtView.h.
* Source/WebKit/UIProcess/API/wpe/qt6/WPEQtViewLoadRequest.cpp: Renamed from Source/WebKit/UIProcess/API/wpe/qt/WPEQtViewLoadRequest.cpp.
(WPEQtViewLoadRequest::WPEQtViewLoadRequest):
(WPEQtViewLoadRequest::~WPEQtViewLoadRequest):
(WPEQtViewLoadRequest::url const):
(WPEQtViewLoadRequest::status const):
(WPEQtViewLoadRequest::errorString const):
* Source/WebKit/UIProcess/API/wpe/qt6/WPEQtViewLoadRequest.h: Renamed from Source/WebKit/UIProcess/API/wpe/qt/WPEQtViewLoadRequest.h.
* Source/WebKit/UIProcess/API/wpe/qt6/WPEQtViewLoadRequestPrivate.h: Renamed from Source/WebKit/UIProcess/API/wpe/qt/WPEQtViewLoadRequestPrivate.h.
(WPEQtViewLoadRequestPrivate::WPEQtViewLoadRequestPrivate):
(WPEQtViewLoadRequestPrivate::~WPEQtViewLoadRequestPrivate):
* Source/WebKit/UIProcess/API/wpe/qt6/WPEViewQtQuick.cpp: Added.
(wpeViewQtQuickDispose):
(wpeViewQtQuickRenderBuffer):
(wpeViewQtQuickResize):
(wpe_view_qtquick_class_init):
(wpe_view_qtquick_new):
(wpe_view_qtquick_initialize_rendering):
(wpe_view_qtquick_render_buffer_to_texture):
(wpe_view_qtquick_did_update_scene):
(buttonFromEvent):
(mouseModifiersFromEvent):
(keyboardModifiersFromEvent):
(modifiersFromEvent):
(wpe_view_dispatch_mouse_press_event):
(wpe_view_dispatch_mouse_move_event):
(wpe_view_dispatch_mouse_release_event):
(wpe_view_dispatch_wheel_event):
(wpe_view_dispatch_hover_enter_event):
(wpe_view_dispatch_hover_move_event):
(wpe_view_dispatch_hover_leave_event):
(wpe_view_dispatch_key_press_event):
(wpe_view_dispatch_key_release_event):
(wpe_view_dispatch_touch_event):
* Source/WebKit/UIProcess/API/wpe/qt6/WPEViewQtQuick.h: Added.
* Source/WebKit/UIProcess/API/wpe/qt6/qmldir: Renamed from Source/WebKit/UIProcess/API/wpe/qt/qmldir.
* Source/cmake/OptionsWPE.cmake:
* Tools/MiniBrowser/wpe/CMakeLists.txt:
* Tools/MiniBrowser/wpe/qt/CMakeLists.txt: Removed.
* Tools/MiniBrowser/wpe/qt5/CMakeLists.txt: Added.
* Tools/MiniBrowser/wpe/qt5/main.cpp: Copied from Tools/MiniBrowser/wpe/qt/main.cpp.
* Tools/MiniBrowser/wpe/qt5/main.qml: Renamed from Tools/MiniBrowser/wpe/qt/main.qml.
* Tools/MiniBrowser/wpe/qt5/qml.qrc: Copied from Tools/MiniBrowser/wpe/qt/qml.qrc.
* Tools/MiniBrowser/wpe/qt6/CMakeLists.txt: Added.
* Tools/MiniBrowser/wpe/qt6/main.cpp: Renamed from Tools/MiniBrowser/wpe/qt/main.cpp.
(main):
* Tools/MiniBrowser/wpe/qt6/main.qml: Added.
* Tools/MiniBrowser/wpe/qt6/qml.qrc: Renamed from Tools/MiniBrowser/wpe/qt/qml.qrc.
* Tools/Scripts/run-qt-wpe-minibrowser:
* Tools/Scripts/webkitdirs.pm:
(builtDylibPathForName):
* Tools/Scripts/webkitpy/style/checker.py:
* Tools/TestWebKitAPI/Tests/WPEQt/WPEQtTest.cpp:
* Tools/TestWebKitAPI/Tests/WPEQt/WPEQtTest.h:
* Tools/TestWebKitAPI/glib/CMakeLists.txt:

Canonical link: https://commits.webkit.org/279129@main



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