QtWebEngine/WorkShop 2025 August

From Qt Wiki
Jump to navigation Jump to search

When: 2025-08-26 - 2025-08-27

See QtWebEngine/Features and QtWebEngine/WorkShop_2024_October for the last workshops

Topics

Agenda

Tuesday

  • Agenda discussion
    • How to follow up on workshop
    • Went through last workshop notes
    • We are down on man power this next year, so need to take that into account
  • QtWebView status and feature requirements
    • Platforms
      • We have now WebView2 on MSVC, but not clang/mingw
      • Android
      • iOS/macOS
      • WASM, what to do, should we ignore, who wrote it?
      • We should delete winRT backend
    • Permissions
      • Can we handle WebRTC etc..
      • Fullscreen requests
      • Unknown permission for stuff we dont handle.
    • Delegates
      • Could be provided if using QWidgets API
      • Integrate with native widgets on Android/iOS.
        • But we recommend QML for embedded anyway
      • Might already be handled within the libraries used by the plugins
        • needs to be tested.
    • WebActions
      • Do we want them
      • if not, which of them do we need?
    • History API
    • JavaScript evaluation
      • With or without callback
        • can callbacks be done with console write?
      • Is very useful for our own testing
    • WebChannel
      • should be possible already, but adding convinience API might be desirable
    • Find API
    • Favicon info
    • Downloads
    • Authentication API
      • check what we added to webengine
      • and integration with QNetworkAuth
    • Clipboard interaction
      • Might need to be tested
    • Off the record mode
    • New window/tab handling
      • What does qtwebview currently do?
      • Windows might just open new windows we then dont have any API for.
    • Plugin capability test api
  • QtWebView action steps
    • For 6.11, do the following
    • Test delegate interaction
      • if handled internally, we can do QWindow API
      • if we need to handle it, QWidgets API would be simpler
      • Also test new window handling
    • Capability API to ease implementation of features per plugin
    • JavaScript API for testing purposes.
    • Estimate work to support mingw/clang
  • Feature brainstorm
    • Qt 6.11 planing
      • QtWebView API
    • Extensions API status
      • Something useful
        • like tabs API
        • AdBlocker test
      • WebChannel integration
    • Rust stuff
    • Printing API for frames (new api), JIRA ticket
    • The whole update Chromium 138/140 horror story
  • Support brainstorm
    • Rust requirement
      • Start with official stable rust
      • Might be a problem in the longer run
        • Google uses unstable rust
        • Google uses patched libraries
      • Allan update his patch
    • Chrome standard library
      • Google is now requiring their own binaries
      • Look into what Linux distros are doing (Peter will check Gentoo, Allan will check Debian)
    • AI patch set. MSVC conflict issue, inline asm and stuff.
      • Might be possible to only disable on Windows ARM (or use clang-cl)
      • Need to check compatibility between cl and clang-cl
    • QML issue
    • Working with CI
      • Is super slow
      • Nothing has been done about if for years
      • Nobody seems to know how to fix the systemic issues
    • What we learned from Windows on Arm issues
      • Build took way too long on native build after we finished making it work (40 hours)
      • We tried a cross compilation approach, Michael ended up having to do most of the work
        • But it was broken in packaging combined native and cross-build binaries, with different configurations
        • Now we have matching config builds
      • Are trying to push for using full cross compilation build, but it requires cmake and qmake update to make the cross-build libraries working for native end-user builds.
      • Another approach is using 128 core native builds.
    • Add clang-cl CI config
      • Allan will try to add it
  • Connect to Google/Chromium owners
    • Upstreaming might help build up clout
    • New owners might not even want to work with us
    • Chrome team in Munich. We should try to connect with them
  • Backlog grooming
  • Follow-up discussion
  • Dinner

Wednesday

  • Chromium patch workshop
    • See QtWebEngine/WebEngine_workshop_patches from last workshop
    • We should update copyright on qtwebngine specific files in chromium
    • Went through line 100 to 288 in Log.txt from 130->134 based
    • 1baa6e7f5c8 Reintroduce SANDBOX_EXPORTS, and fix it for heterogeneous executables
      • mark sandbox
      • Might be upstreamable
    • 6dcac6104f3 Fix zygote path used
      • Upstream if the one above is
      • mark sandbox
    • 1e1bb33e531 Disable responsiveness watcher
      • No idea if still neceary, needs better documentation if it is
    • 9abd1f52e2c Soften check for single thread only if layer1 or layer2 sandbox
      • mark sandbox
    • e65f367a27b Enable the option to remove previous user PrefService
      • marked as not necessary in qt6, but we mights still need it until we remove live changes of profiles (qt7)
    • 87dd97fb1e3 Fix changing should_override_user_agent_in_new_tabs_
      • Upstreamable
    • 4b53fc4bfcf Fix pressure of tablet events
      • `Needs to be checked if still relevant
    • db8f956cf2c Fix crossbuilds of v8 snapshots
      • mark snapshot
      • check if still needed
    • e519b425b16 Fix crash on page allocator
      • mark ios
      • mark pdf only?
      • check if still needed
    • 6a15e18891b Allow changing user-agent without replacing the entire network context
      • upstreamable?
      • mark profile
    • d6ce559951b Fix build for expanded sources
      • rename, 99% fix spellchecking
    • 1c0e845f712 Fix initialize of cdm for sandbox from widevine-path
      • rename it is adding another path setting
    • 68ae2cd4qqb2f Do not depend on soda on Linux
      • check sha, rename or merge with webspeech removal
    • 33a944509cd Remove blocking of proper fixes
      • merge with MSVC fixes
      • upstreamable
    • c9c27951357 Disable NetworkServiceSandbox on macOS by default
      • Check if necessary, otherwise document the underlying issue
    • ebb6f9b9cd4 Legalize SSE/NEON intrinsics
      • upstreamable, is illegal, but just happens to work in clang
    • edce0c1ba97 Bring enable_webrtc back
      • Check what we even still save anything significant
    • 110c5efbf13 Make GpuSwitchingManager::RemoveObserver() thread safe
      • Upstreamable
      • mark compositor
      • check if even still relevant
    • 65ef7957593 Fixes for our tests
      • Is like four separate patches, some possibly mergable with other parts
    • e0e30fcd97e Fix crashes on getUserMediaRequest
      • could probably be merge, for instance with enable_webrtc patch
    • 17fc680b8c4 Make clang to inline load/store atomic calls for YieldSortKey struct
      • might not be needed anymore
    • d21e5769b9a Workaround revoked certificate check on Linux
      • needs to be verified it still does anything, if it does, upstreamable
    • c36ae9cca66 Adapt accessibility code for our needs after chromium 90
      • split, part is fixing building without enable_toolkit_views, part is adding Qt specifica accesibility backend
    • 24e2b1ad96e Fix data fragment navigation
      • upstreamable.
    • 8c0a055b7c3 Fix fragment navigations on custom URL schemes
      • fixup of custom url schemes
    • ba19faa985b Pass Qt Prefix path to the macOS V2 Seatbelt Sandbox
      • mark sandbox
    • eb0ec797569 Pass virtual url of data url request back to the UI
      • probably upstreamable
    • 460c5e388e2 Fixup select elements
      • check if still needed,
      • rename to fix for enable_external_popup=false
    • c54458882fa Disable less privileged app container
      • mark sandbox and no-manifest
      • is only needed when executables have no manifest
    • 14c593a4077 Do not override getaddrinfo in libc_interceptor
      • mark as sandbox
    • f4b4ebf43fc Do not initialize default locale in local isolate
      • should likely be squashed with fixups of issues htis caused
    • bb77ba286f2 Fix for QtWebEngine crash on Windows
      • might not be needed with angle, and be for wgl only
      • needs check
    • 28d39e1888f [macOS] Do not subscribe to display callbacks when GPU is disabled
      • might not be needed with angle, and be for cgl only
      • needs check
    • fd0924bc2ac Add network service discovery
      • might need to be squashed
  • Documentation workshop
    • Link to wiki build intructions
      • and have them as simple as possible
      • and with basic troubleshooting
      • Update to assume 6.8+
    • Ask for config.opts and config.summary in bug reports
    • Advocate for modular build of qtwebengine
    • the rest of qt can be toplevel, or release binaries
    • Docu-week
  • Collective sync
  • Conclussion
    • Worked well
    • Virtual workshop in January or so
    • Backlog gardening needs to be done more often in smaller bites.
    • We are likely going to have a lot of pain with future chromium updates
    • Backlog grooming could be moving slower, so everybody can catch up.
    • We might have problems doing all the stuff we comment on in chromium patch review.
      • We might be able to do that together with our clean 134-rebased we are discussing

Summary

What to do better next time?