QtWebEngine/WorkShop 2024 October: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
(18 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[File:QtWebEngine Team Oct 2024.jpg|thumb|QtWebEngine Team in Szeged in Oct 2024 ]]
When: 2024-10-10 - 2024-10-11
When: 2024-10-10 - 2024-10-11


Line 7: Line 8:
* Qt 6.9 planning
* Qt 6.9 planning
** Windows ARM support
** 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.
** Extension API.
** D3D12 support
*** Basic API: Load manifest plus path.
** ANGLE use with GLX/EGL
*** 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
** 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
** Update documentation
* Use cases
* Use cases
** SVG renderer
** SVG renderer
** OAuth
** OAuth
* WebView speculation
** Stacking of native views (webview)
* Qt WebView speculation
** WebView2 Windows backend
** WebView2 Windows backend
** C++/Widgets API, or Window?
** C++ API, QtWidgets, or QtGui QWindow?
* Version independence
** We need a way to deal better with deprecations from other Qt modules
** No general testing for backwards compat
*** We need at least one CI node doing such a mixed build
** We are currently just pretending to be qtbase version
** Should we continue to support 6.5 in 6.9?


== Agenda ==
== Agenda ==
Line 21: Line 52:
=== Thursday ===
=== Thursday ===


* Agenda discussion
** Scope of webengine
*** Cypersecurity resilient act
*** WebView
** Talk of what we want to do
* Feature Brainstorm
* Feature Brainstorm
* Gardening
** D3D12 support
*** Even doable? Does it need Dawn?
*** We probably need Dawn graphics integration anyway
** 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
* Support brainstop
** Patch reduction
** Patch reduction
*** Code changing the same code, should ideally be one commit, to not deal with merge issues multiple times.
** Upstreaming
** Upstreaming
* Gardening
*** Peter presented
* Feature follow-up
** 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.
**** There was useful, do it again
*** There were many patches that could possibly be upstream
*** [[WebEngine workshop 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 ===
=== Friday ===


* Feature follow-up
* Chromium Patch workshop
* Support follow-up
** We went through the 94 first patches in 126-based
* Documentation workshop (below items are scope as tasks under https://bugreports.qt.io/browse/QTBUG-131532)
** Motivation in qtwebengine landing pages: https://bugreports.qt.io/browse/QTBUG-131533
** Add better short description of WebEngine https://bugreports.qt.io/browse/QTBUG-131533
** Overviews
*** Add references to WebView for unsupported platforms, https://bugreports.qt.io/browse/QTBUG-131535
*** Update graphics overview for webenginequick https://bugreports.qt.io/browse/QTBUG-131536
*** WebEngine overview is bad https://bugreports.qt.io/browse/QTBUG-131537
*** What a QWebEngineScript should look like and what it can do should be on the class page https://bugreports.qt.io/browse/QTBUG-131538
*** References to examples https://bugreports.qt.io/browse/QTBUG-131539
*** Mention user-certificates with ssl certificates https://bugreports.qt.io/browse/QTBUG-131540
*** High DPI being covered explicit is outdated https://bugreports.qt.io/browse/QTBUG-131541
*** Related modules should cover qt pdf and not try to link to qtwebkit https://bugreports.qt.io/browse/QTBUG-131542
** Features
*** Link to external documenation for proprietary codecs https://bugreports.qt.io/browse/QTBUG-131543
*** Last sentence on codecs is bad https://bugreports.qt.io/browse/QTBUG-131543
*** Reprioritize integrated devtools over remote debugging https://bugreports.qt.io/browse/QTBUG-131544
*** More on custom schemes. For instance with OAuth. https://bugreports.qt.io/browse/QTBUG-131545
**** Also mention the scheme registration
*** Hardware acceleration section is outdated https://bugreports.qt.io/browse/QTBUG-131546
*** HTML5 DRM could say more explicitly we do not ship it https://bugreports.qt.io/browse/QTBUG-131547
*** Remove mentioning of features added before Qt 6.2 https://bugreports.qt.io/browse/QTBUG-131548
*** WebChannel out of webSockets doc, and maybe remove websocket doc https://bugreports.qt.io/browse/QTBUG-131549
*** Mention HTTP/3 https://bugreports.qt.io/browse/QTBUG-131550
*** Native dialogs. Quick Controls 1 no longer exists. Form validation message no longer work on Qt6.
*** And maybe the native dialogs often arent native https://bugreports.qt.io/browse/QTBUG-131551
*** PDF file viewing should not mention pluginenabled setting https://bugreports.qt.io/browse/QTBUG-131552
*** Lifecycle should probably mention very early it does nothing by default https://bugreports.qt.io/browse/QTBUG-131553
*** Process module is not a feature, move to overview. Check if custom settings are valid and up to date. https://bugreports.qt.io/browse/QTBUG-131554
*** Spellchecking should mention Win support, after Kaloyan has tested it. Which he says he will. https://bugreports.qt.io/browse/QTBUG-131555
*** AuthUX feature https://bugreports.qt.io/browse/QTBUG-131556
*** Permissions Feature https://bugreports.qt.io/browse/QTBUG-131557
*** Frame API features https://bugreports.qt.io/browse/QTBUG-131557
*** Push notifications https://bugreports.qt.io/browse/QTBUG-131557
** Platform notes. All below are in https://bugreports.qt.io/browse/QTBUG-131558 
*** nodejs is should be higher than 14
*** Linux gcc min is 10 AFAIK.
*** Linux libgbm needed
*** Linux Wayland config should be mentioned
*** Windows, clang-cl 19 is needed
*** Check macOS support. Maybe just link to QT platform support.
*** Earlier versions should update versions, and have cmake example instead of qmake.
*** Mac app store compat. Check and remove if ignored now.
*** Check mac airplay section
*** Macos QSurfaceFormat paragraph update
*** Update sandbox section (moss checked this earlier)
*** command line arguments need to repeat --webEngineArgs everywhere
*** Accessibility is outdated now.
*** Fullscreen windows opengl is outdated, remove
*** Move window application manifest to deploy
** Debugging and profile. All below are in https://bugreports.qt.io/browse/QTBUG-131559
*** Console logging should tell how to get console logging on Windows.
*** Developer tools is repeated from features/overview, deduplicate emphasise internel views.
*** --enable-features=NetworkServiceInProcess is default now. Maybe document the reverse
** Deploying. All below are in https://bugreports.qt.io/browse/QTBUG-131560
*** Target platforms probably not needed here
*** Some standard parts are from Qt deploying can be removed, or just referenced.
*** devtool resources are not just for remote debugging
*** Manifest info from Windows moved here.
** Module evolution could mention APIs deprecated or improved in Qt 6.x https://bugreports.qt.io/browse/QTBUG-131561
** Examples. All below are in https://bugreports.qt.io/browse/QTBUG-131562
*** Maybe merge module examples pages.
*** Running repeats. Do we want it?
*** Recipe.
**** Link to scripting and webchannel features
*** There is a problem with wrapping of examples documentation.
*** Cookie browser, is very minimal.
*** Maps add link to geolocation feature
*** Printme could be expanded to frame api.
*** Simplebrowser link to deploying for macOS.
*** Ditto, do that for windows too.
*** Videoplayer, link to proprietary codec issue.
** QML docu https://bugreports.qt.io/browse/QTBUG-131564
*** ShareOpenGL attribute is not needed. Initialize will do that where necessary
* Feature and Support follow-up
* Backlog grooming
* Backlog grooming
 
* Key-customers, and major users
* Conclusion
** Roadmap
*** Updated
** Follow up meeting
** External dependencies
*** Versioning
*** CI
** Next workshop late January or Februrary 2025
** Follow up chromium patch over/review in a few weeks


=== Summary ===
=== Summary ===


What to do better next time?
What to do better next time?
* Start with something customer based
* Better splitting of tasks with chromium update
* Use JIRA more for work we are doing.

Latest revision as of 16:14, 25 November 2024

QtWebEngine Team in Szeged in Oct 2024

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
    • 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
    • Update documentation
  • 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 need a way to deal better with deprecations from other Qt modules
    • No general testing for backwards compat
      • We need at least one CI node doing such a mixed build
    • 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
    • D3D12 support
      • Even doable? Does it need Dawn?
      • We probably need Dawn graphics integration anyway
    • 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.
        • There was useful, do it again
      • There were many patches that could possibly be upstream
      • WebEngine workshop 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

Summary

What to do better next time?

  • Start with something customer based
  • Better splitting of tasks with chromium update
  • Use JIRA more for work we are doing.