QtWebEngine/WorkShop 2024 October: Difference between revisions
Jump to navigation
Jump to search
Allan Jensen (talk | contribs) |
WindJunkie (talk | contribs) 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 | ||
** | ** 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 | *** 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 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
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
- Windows ARM support
- 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
- Scope of webengine
- 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
- D3D12 support
- 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
- Allan and Michal can do early stage, the goal is to have three people that can do the early stage.
- Patch reduction
- 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
- Chromium Patch workshop
- 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
- 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
- Roadmap
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.