from webkit for wayland to wpe
play

From 'WebKit for Wayland' to WPE an Dober ek Igalia e-mail - PowerPoint PPT Presentation

From 'WebKit for Wayland' to WPE an Dober ek Igalia e-mail zdobersek@igalia.com twitter @falconsigh www blogs.igalia.com/zdobersek Defining WPE A new WebKit port, started in 2014. Not tied to any toolkit or Linux


  1. From 'WebKit for Wayland' to WPE Ž an Dober š ek Igalia e-mail zdobersek@igalia.com twitter @falconsigh www blogs.igalia.com/zdobersek

  2. Defining WPE A new WebKit port, started in 2014. Not tied to any toolkit or Linux environment/platform. Result is some additional freedom, some additional troubles. 2/26

  3. Defining WPE Origins of the port are in WebKitGTK+. The two ports still share most of non-GNOME dependencies. Libglib, Libsoup, GStreamer, FreeType, Harfbuzz, Cairo, ... 3/26

  4. Origin - WebKit for Wayland Accurate name for a cheap first approach. UIProcess is loaded as a shared library into the Wayland compositor. WebProcess acts as the only fullscreen EGL client of that compositor. It ... works. 4/26

  5. Origin - WebKit for Wayland Bad design. UIProcess shouldn't exist in the same process as the system-wide compositor. Can't show a second Web view. 5/26

  6. Developing the idea Let's provide: · a platform-generic solution for processing Web content, · simple adaptive approach to displaying processed graphical output. 6/26

  7. Developing the idea WebProcess uses EGL to render the scene. The graphics buffer is shared with the UIProcess. UIProcess takes care of displaying the content in platform-specific, use-case-specific way. 7/26

  8. WPE 'WPE' - three-letter acronym used to define the port in WebKit. Rather ambiguous meaning: · Web Platform Engine · WebKit Port Experiment · WebKit Para Embebidos · WebKit Pure Embedded 8/26

  9. libWPE A small C library defining platform-agnostic interfaces. Minimal facility used for loading shared libraries providing implementations for those interfaces. 9/26

  10. libWPE wpe_renderer_host - per UIProcess. wpe_view_backend - per view/page, in the UIProcess. wpe_renderer_backend_egl - per WebProcess. wpe_renderer_backend_egl_target - per view/page, in the WebProcess. The related interfaces are able to coordinate between them. 10/26

  11. libWPE Input interfaces - used to pipe input events to the relevant view/page. Pasteboard interfaces - for pasteboard facilities. More? As required. 11/26

  12. libWPE-mesa Reference implementation. Depends on the general modern Linux graphics stack. Linux + libdrm + Mesa. 12/26

  13. libWPE-mesa Uses rendering nodes, libgbm to manage graphics buffers. Nested compositor implementation pending review. View backends support Wayland, DRM. 13/26

  14. libWPE-mesa Exportable view backend - hands off graphics buffers to the user. EGLImage would be delivered to the user, can be used in other scenes. Enables headless mode - snapshotting graphical output without visually presenting it. 14/26

  15. API WebKit2 C API. A few additions specific to the WPE port (i.e. WKView). No radical changes expected in the long-term. 15/26

  16. Relations with upstream The ultimate goal is to upstream the port, stay close to upstream until then. Weekly releases until this summer, now rotating to mothly releases. Pulls from upstream would still be done more frequently. 16/26

  17. Roadmap A bunch of work awaits! Most (all?) of this applies to the GTK+ port as well. 17/26

  18. Roadmap Graphics: · Display lists · Additional composition optimizations · Separate-thread image decoding · GLES3 support · Experiment with Vulkan · Rewrite the graphics stack? 18/26

  19. Roadmap Media: · MSE support · WebM improvements (for MSE usage) 19/26

  20. Roadmap JavaScriptCore: · Not much to add to a state-of-the-art engine · ... except improving MIPS support 20/26

  21. Roadmap Standards: · Area where WebKit likely lacks the most, but is improving · A lot of low-hanging fruit · Existing WebCore implementations with missing platform-specific parts 21/26

  22. Roadmap Usability: · A small Web browser for testing purposes on desktop · Suppport for customizable theming (via CSS) 22/26

  23. Roadmap Networking: · HTTP2 · A bunch of security features · Libsoup improvements 23/26

  24. Roadmap WPE, WPE-mesa currently reside in the WebKit repository, under Source/ThirdParty/. They should be moved out into standalone repositories. A precondition for upstreaming. 24/26

  25. Roadmap Address the WebKitGTK+ origin: · Investigate the possibilities of basing the GTK+ port on WPE · Possible to apply the relevant GNOME dependencies on WPE? · Would the result of that be a WebKitGTK+ equivalent in all regards? The goal would be to support two ports for the cost of one. 25/26

  26. Questions? And thank you! 26/26

Recommend


More recommend