QtWebEngine/WorkShop 2024 October: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
(4 intermediate revisions by the same user not shown)
Line 106: Line 106:
* Chromium Patch workshop
* Chromium Patch workshop
** We went through the 94 first patches in 126-based
** We went through the 94 first patches in 126-based
* Documentation workshop
* Documentation workshop (below items are scope as tasks under https://bugreports.qt.io/browse/QTBUG-131532)
** Motivation in qtwebengine landing pages
** Motivation in qtwebengine landing pages: https://bugreports.qt.io/browse/QTBUG-131533
** Add better short description of WebEngine
** Add better short description of WebEngine https://bugreports.qt.io/browse/QTBUG-131533
** Overview
** Overviews
*** Add references to WebView for unsupported platforms
*** Add references to WebView for unsupported platforms, https://bugreports.qt.io/browse/QTBUG-131535
*** Update graphics overview for webenginequick
*** Update graphics overview for webenginequick https://bugreports.qt.io/browse/QTBUG-131536
*** WebEngine overview is bad.  
*** 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.
*** 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
*** References to examples https://bugreports.qt.io/browse/QTBUG-131539
*** Mention user-certificates with ssl certificates
*** Mention user-certificates with ssl certificates https://bugreports.qt.io/browse/QTBUG-131540
*** High DPI being covered explicit is outdated
*** 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
*** Related modules should cover qt pdf and not try to link to qtwebkit https://bugreports.qt.io/browse/QTBUG-131542
** Features
** Features
*** Link to external documenation for proprietary codecs.
*** Link to external documenation for proprietary codecs https://bugreports.qt.io/browse/QTBUG-131543
*** Last sentence on codecs is bad
*** Last sentence on codecs is bad https://bugreports.qt.io/browse/QTBUG-131543
*** Reprioritize integrated devtools over remote debugging
*** Reprioritize integrated devtools over remote debugging https://bugreports.qt.io/browse/QTBUG-131544
*** More on custom schemes. For instance with OAuth.
*** More on custom schemes. For instance with OAuth. https://bugreports.qt.io/browse/QTBUG-131545
**** Also mention the scheme registration  
**** Also mention the scheme registration
*** Hardware acceleration section is outdated
*** Hardware acceleration section is outdated https://bugreports.qt.io/browse/QTBUG-131546
*** HTML5 DRM could say more explicitly we do not ship it.
*** 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
*** 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.
*** WebChannel out of webSockets doc, and maybe remove websocket doc https://bugreports.qt.io/browse/QTBUG-131549
*** Mention HTTP/3
*** 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.
*** Native dialogs. Quick Controls 1 no longer exists. Form validation message no longer work on Qt6.
*** And maybe the native dialogs often arent native  
*** And maybe the native dialogs often arent native https://bugreports.qt.io/browse/QTBUG-131551
*** Pdf file viewing should not mention pluginenabled setting.
*** 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.
*** 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.
*** 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..
*** Spellchecking should mention Win support, after Kaloyan has tested it. Which he says he will. https://bugreports.qt.io/browse/QTBUG-131555
*** AuthUX feature
*** AuthUX feature https://bugreports.qt.io/browse/QTBUG-131556
*** Permissions Feature
*** Permissions Feature https://bugreports.qt.io/browse/QTBUG-131557
*** Frame API features
*** Frame API features https://bugreports.qt.io/browse/QTBUG-131557
*** Push notifications
*** Push notifications https://bugreports.qt.io/browse/QTBUG-131557
** Platform notes,
** Platform notes. All below are in https://bugreports.qt.io/browse/QTBUG-131558 
*** nodejs is should be higher than 14
*** nodejs is should be higher than 14
*** Linux gcc min is 10 AFAIK.
*** Linux gcc min is 10 AFAIK.
Line 152: Line 152:
*** Update sandbox section (moss checked this earlier)
*** Update sandbox section (moss checked this earlier)
*** command line arguments need to repeat --webEngineArgs everywhere
*** command line arguments need to repeat --webEngineArgs everywhere
*** Accessibility is outdated now.  
*** Accessibility is outdated now.
*** Fullscreen windows opengl is outdated, remove
*** Fullscreen windows opengl is outdated, remove
*** Move window application manifest to deploy
*** Move window application manifest to deploy
** Debugging and profile
** 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.
*** Console logging should tell how to get console logging on Windows.
*** Developer tools is repeated from features/overview, deduplicate emphasise internel views.
*** Developer tools is repeated from features/overview, deduplicate emphasise internel views.
*** --enable-features=NetworkServiceInProcess is default now. Maybe document the reverse
*** --enable-features=NetworkServiceInProcess is default now. Maybe document the reverse
** Deploying
** Deploying. All below are in https://bugreports.qt.io/browse/QTBUG-131560
*** Target platforms probably not needed here
*** Target platforms probably not needed here
*** Some standard parts are from Qt deploying can be removed, or just referenced.
*** Some standard parts are from Qt deploying can be removed, or just referenced.
*** devtool resources are not just for remote debugging
*** devtool resources are not just for remote debugging
*** Manifest info from Windows moved here.
*** Manifest info from Windows moved here.
** Module evolution could mention APIs deprecated or improved in Qt 6.x
** Module evolution could mention APIs deprecated or improved in Qt 6.x https://bugreports.qt.io/browse/QTBUG-131561
** Examples
** Examples. All below are in https://bugreports.qt.io/browse/QTBUG-131562
*** Maybe merge module examples pages.
*** Maybe merge module examples pages.
*** Running repeats. Do we want it?
*** Running repeats. Do we want it?
Line 177: Line 177:
*** Ditto, do that for windows too.
*** Ditto, do that for windows too.
*** Videoplayer, link to proprietary codec issue.
*** Videoplayer, link to proprietary codec issue.
** QML docu
** QML docu https://bugreports.qt.io/browse/QTBUG-131564
*** ShareOpenGL attribute is not needed. Initialize will do that where necessary
*** ShareOpenGL attribute is not needed. Initialize will do that where necessary
* Feature and Support follow-up
* Feature and Support follow-up

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.