24
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 [email protected] WPE Current Status & Future

WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is Work started in 2014 Work presented at the 2014 Hackfest Another update at the 2016

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is Work started in 2014 Work presented at the 2014 Hackfest Another update at the 2016

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š[email protected]

WPE Current Status & Future

Page 2: WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is Work started in 2014 Work presented at the 2014 Hackfest Another update at the 2016

WPE – What It Is

Page 3: WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is Work started in 2014 Work presented at the 2014 Hackfest Another update at the 2016

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

Page 4: WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is Work started in 2014 Work presented at the 2014 Hackfest Another update at the 2016

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

Page 5: WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is Work started in 2014 Work presented at the 2014 Hackfest Another update at the 2016

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

Page 6: WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is Work started in 2014 Work presented at the 2014 Hackfest Another update at the 2016

WPE – Current Status

Page 7: WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is Work started in 2014 Work presented at the 2014 Hackfest Another update at the 2016

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+

Page 8: WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is Work started in 2014 Work presented at the 2014 Hackfest Another update at the 2016

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

Page 9: WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is Work started in 2014 Work presented at the 2014 Hackfest Another update at the 2016

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)

Page 10: WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is Work started in 2014 Work presented at the 2014 Hackfest Another update at the 2016

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

Page 11: WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is Work started in 2014 Work presented at the 2014 Hackfest Another update at the 2016

Where It’s Used

● … that we know of

● Set-Top Boxes● Home appliances, Entertainment devices● In-flight, In-vehicle infotainment systems● Digital signage

Page 12: WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is Work started in 2014 Work presented at the 2014 Hackfest Another update at the 2016

WPE – What’s To Do

Page 13: WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is Work started in 2014 Work presented at the 2014 Hackfest Another update at the 2016

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

Page 14: WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is Work started in 2014 Work presented at the 2014 Hackfest Another update at the 2016

Multimedia

● MSE, EME● Tracking yearly certification suites

● WebRTC● OpenWebRTC deserted● Praise the libwebrtc overlord

Page 15: WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is Work started in 2014 Work presented at the 2014 Hackfest Another update at the 2016

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

Page 16: WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is Work started in 2014 Work presented at the 2014 Hackfest Another update at the 2016

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?

Page 17: WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is Work started in 2014 Work presented at the 2014 Hackfest Another update at the 2016

Network & Security

● Libsoup coup● (We’re the maintainers now)

● HSTS● Sandboxing

● Via Flatpak● Or DIY on capable platforms

Page 18: WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is Work started in 2014 Work presented at the 2014 Hackfest Another update at the 2016

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

Page 19: WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is Work started in 2014 Work presented at the 2014 Hackfest Another update at the 2016

JavaScriptCore

● 32-bit JIT maintenance● Alas, we need it

● BigInt, class fields

Page 20: WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is Work started in 2014 Work presented at the 2014 Hackfest Another update at the 2016

WPE – Weekend Projects

Page 21: WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is Work started in 2014 Work presented at the 2014 Hackfest Another update at the 2016

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)

Page 22: WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is Work started in 2014 Work presented at the 2014 Hackfest Another update at the 2016

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

Page 23: WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is Work started in 2014 Work presented at the 2014 Hackfest Another update at the 2016

Questions?

Page 24: WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is Work started in 2014 Work presented at the 2014 Hackfest Another update at the 2016