QtWebEngine/WorkShop 2024 October

From Qt Wiki
Jump to navigation Jump to search

When: 2024-10-10 - 2024-10-11

See QtWebEngine/Features for the last two workshops

Topics

  • WebEngine Use Cases
  • Qt 6.9 planning
    • Windows ARM support
      • QtPDF was easy, but WebEngine is more complicated
      • Kaloyan looking into it
      • One major issue is GAS assembly.
        • ffmpeg, boringssl, and dav1d
        • For boringssl and dav1d we can disable assembly optimizations.
        • We have a perl script that converts GAS to NASM that could make us build on MSVC
    • Extension API.
      • Basic API: Load manifest plus path.
      • Addons are enabling more Chromium extensions APIs (we currently only provide a limited amount).
        • One complicated API that is widely used is the tabs API, which is not that simple to integrate
      • PWA API
        • Has some database of installed apps
    • D3D12 support
      • Even doable? Does it need Dawn?
      • We probably need Dawn graphics integration anyway
    • ANGLE use with WGL/GLX/EGL
      • Peter is working on it
      • WGL removal patch up for review
      • GLX/EGL is integrated in 5.9, but not on by default.
    • New setting for touch-event handling API, to avoid websites detecting desktops with touch screens as mobile.
    • High-contrast theme passing on Windows
    • Printing header and footers.
    • Async download requests
    • Profile builder API
      • Deprecation of old API might be complicated when we copy to old Qt versions.
    • Wrap up frame-based API.
    • Finished (first) rendering signal.
    • Update to Chromium 128, and 130
  • Use cases
    • SVG renderer
    • OAuth
    • Stacking of native views (webview)
  • Qt WebView speculation
    • WebView2 Windows backend
    • C++ API, QtWidgets, or QtGui QWindow?
  • Version independence
    • We are currently just pretending to be qtbase version
    • Should we continue to support 6.5 in 6.9?

Agenda

Thursday

  • Agenda discussion
    • Scope of webengine
      • Cypersecurity resilient act
      • WebView
    • Talk of what we want to do
  • Feature Brainstorm
    • QWebEngineWindow
    • Pretend to be patch level version in agent string?
    • QWebEngineUrlResponseInterceptor
    • WebData
    • Autofill API/ Password manager integration
    • More extensions API
    • Payment API
    • Removing Machine Learning/WebNN crap
    • Subresource loading status.
    • Minimal build, binary size reduction.
      • Investigate existing if still meaningful, and new options that are.
    • Reinitialization with QApplications.
    • Early shutdown of WebEngine
    • Single executable (in main binary helper process)
      • Needed for moving networking out of main process on some platforms.
    • Static builds (licensing, and needs above)
    • Dawn rendering
    • Paint to QPainter/image, doesnt have to be live
  • Support brainstop
    • Patch reduction
      • Code changing the same code, should ideally be one commit, to not deal with merge issues multiple times.
    • Upstreaming
      • Peter presented
    • Rebasing
      • Allan and Michal can do early stage, the goal is to have three people that can do the early stage.
        • We might need to have somebody working on rebasing almost always
      • First stage is that it builds on most platforms, and runs almost all tests without crashing (but possibly failing)
      • Everybody helps after first stage is done.
      • Suggested [] notation of chromium patches. We have FIXUP, [Revert], [Backport], we can add compiler or platform or qt module. Consider mixed/lost backport commits([Persistent Backport]?).
      • We should consider doing a team review of all patches.
  • Backlog grooming
    • We went through the 50 oldest and 20 newest bugs
  • Follow-up discussion
    • We should try to have more reliable tests
    • SCCache should be investigated
      • Can we preserve WebEngine cache better
      • Can we enable SCCache on Windows

Friday

  • Feature follow-up
  • Support follow-up
  • Backlog grooming


Summary

What to do better next time?