WPE { GParamSpec *pspec; Current Status & Future /* Party - - PowerPoint PPT Presentation

wpe
SMART_READER_LITE
LIVE PREVIEW

WPE { GParamSpec *pspec; Current Status & Future /* Party - - PowerPoint PPT Presentation

static void _f_do_barnacle_install_properties(GObjectClass *gobject_class) WPE { GParamSpec *pspec; Current Status & Future /* Party code attribute */ pspec = g_param_spec_uint64 (F_DO_BARNACLE_CODE, "Barnacle code.",


slide-1
SLIDE 1

static void _f_do_barnacle_install_properties(GObjectClass *gobject_class) { GParamSpec *pspec; /* Party code attribute */ pspec = g_param_spec_uint64 (F_DO_BARNACLE_CODE, "Barnacle code.", "Barnacle code", 0, G_MAXUINT64, G_MAXUINT64 /* default value */, G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_PRIVATE); g_object_class_install_property (gobject_class, F_DO_BARNACLE_PROP_CODE,

Žan Doberšek

zdobersek@igalia.com

WPE

Current Status & Future

slide-2
SLIDE 2

WPE – What It Is

slide-3
SLIDE 3

What It Is

  • WebKitGTK+’s younger brother
  • Primarily sheds the GTK+ dependency
  • Not bound to any toolkit or platform
  • Vanilla Web
  • Adjustable, low-level Web content embedding
slide-4
SLIDE 4

What It Is

  • Work started in 2014
  • Work presented at the 2014 Hackfest
  • Another update at the 2016 Hackfest
  • I guess we’re on a 2-year schedule now
  • Upstreamed to webkit.org in April 2017
slide-5
SLIDE 5

Adaptability

  • WPE port of WebKit works against interface definitions
  • “Render targets” for composition of Web content
  • “View backends” for device input and visual output

management

  • Up to deployers to provide platform-specific interface

implementations (in a separate, runtime-loadable library)

  • Enables running on a variety of hardware platforms
  • Low-level approach not imposing many limits
slide-6
SLIDE 6

WPE – Current Status

slide-7
SLIDE 7

Releases

  • Stable releases aligned with WebKitGTK+
  • 2-for-1 branch management
  • 2.22 is the current release
  • GObject-based API
  • Stabilized
  • Again something shared with WebKitGTK+
slide-8
SLIDE 8

The Interface Library

  • Started as “libWPEBackend”
  • Renamed to libwpe
  • Stabilized API
  • Still could change in the long-term
  • Picked up the libxkbcommon dependency
  • Necessary for common keymapping functionality
slide-9
SLIDE 9

Reference Backend Impl Library

  • libWPEBackend-fdo
  • Internally uses wayland-egl capabilities
  • “cross-process buffer sharing”
  • Provides graphics buffer resource exporting APIs
  • EGLImages
  • wl_resource objects
  • Linux dma-buf information data (soon)
  • fdo – freedesktop.org (Mesa)
slide-10
SLIDE 10

Testing The Thing

  • MiniBrowser
  • Simple Web view app, kept inside the WebKit tree
  • Works as a Wayland client
  • Cog
  • Reference testing browser
  • Can be powered by either GTK+ or WPE port
  • Dyz
  • Too much Lua
slide-11
SLIDE 11

Where It’s Used

  • … that we know of
  • Set-Top Boxes
  • Home appliances, Entertainment devices
  • In-flight, In-vehicle infotainment systems
  • Digital signage
slide-12
SLIDE 12

WPE – What’s To Do

slide-13
SLIDE 13

Disclaimer

  • A lot of this has already been in the works
  • With big improvements
  • Scope or repetitiveness of these items simply results in

repeated or long-term presence on such lists

  • All items apply to WebKitGTK+ as well
slide-14
SLIDE 14

Multimedia

  • MSE, EME
  • Tracking yearly certification suites
  • WebRTC
  • OpenWebRTC deserted
  • Praise the libwebrtc overlord
slide-15
SLIDE 15

Graphics

  • Threaded Cairo painting
  • Relative benefits
  • Get the GPU involved
  • Offload painting to that
  • Fonts will be fun
  • Following the trailblazers
  • Vulkan by 2020?
  • GPU process
slide-16
SLIDE 16

Graphics

  • WebGL2
  • Work started, then stalled
  • Continued by Apple
  • WebGPU
  • Still in the spec phase, no capacity to participate there
  • Would have to be Vulkan-based
  • ANGLE?
slide-17
SLIDE 17

Network & Security

  • Libsoup coup
  • (We’re the maintainers now)
  • HSTS
  • Sandboxing
  • Via Flatpak
  • Or DIY on capable platforms
slide-18
SLIDE 18

Standards

  • EME, WebPackage, ImageBitmap, WebDriver
  • Web Predictability
  • Easy to adopt commonly-implemented standards
  • <3 WebKit
  • Web Platform Tests integration
  • Integrate it into the QA process
slide-19
SLIDE 19

JavaScriptCore

  • 32-bit JIT maintenance
  • Alas, we need it
  • BigInt, class fields
slide-20
SLIDE 20

WPE – Weekend Projects

slide-21
SLIDE 21

Different Realities

  • What do to with AR/VR?
  • OpenVR – existing content, but otherwise abandoned
  • OpenXR – in spec phase, prototypes available
  • Or start embedding Web content into XR (XR browsers)
slide-22
SLIDE 22

Android

  • Shoddy backend implementation somewhere on my disk
  • Still needs a lot of glue on top to integrate into the process

model

  • Just a prototype – far from being an usable browser or runtime
slide-23
SLIDE 23

Questions?

slide-24
SLIDE 24