WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is...
Transcript of WPE – What It Is - Web Engines Hackfest...Adjustable, low-level Web content embedding What It Is...
![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](https://reader034.fdocuments.us/reader034/viewer/2022042908/5f38fea55938b0685d4a1c8c/html5/thumbnails/1.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042908/5f38fea55938b0685d4a1c8c/html5/thumbnails/2.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042908/5f38fea55938b0685d4a1c8c/html5/thumbnails/3.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042908/5f38fea55938b0685d4a1c8c/html5/thumbnails/4.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042908/5f38fea55938b0685d4a1c8c/html5/thumbnails/5.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042908/5f38fea55938b0685d4a1c8c/html5/thumbnails/6.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042908/5f38fea55938b0685d4a1c8c/html5/thumbnails/7.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042908/5f38fea55938b0685d4a1c8c/html5/thumbnails/8.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042908/5f38fea55938b0685d4a1c8c/html5/thumbnails/9.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042908/5f38fea55938b0685d4a1c8c/html5/thumbnails/10.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042908/5f38fea55938b0685d4a1c8c/html5/thumbnails/11.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042908/5f38fea55938b0685d4a1c8c/html5/thumbnails/12.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042908/5f38fea55938b0685d4a1c8c/html5/thumbnails/13.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042908/5f38fea55938b0685d4a1c8c/html5/thumbnails/14.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042908/5f38fea55938b0685d4a1c8c/html5/thumbnails/15.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042908/5f38fea55938b0685d4a1c8c/html5/thumbnails/16.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042908/5f38fea55938b0685d4a1c8c/html5/thumbnails/17.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042908/5f38fea55938b0685d4a1c8c/html5/thumbnails/18.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042908/5f38fea55938b0685d4a1c8c/html5/thumbnails/19.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042908/5f38fea55938b0685d4a1c8c/html5/thumbnails/20.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042908/5f38fea55938b0685d4a1c8c/html5/thumbnails/21.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042908/5f38fea55938b0685d4a1c8c/html5/thumbnails/22.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042908/5f38fea55938b0685d4a1c8c/html5/thumbnails/23.jpg)
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](https://reader034.fdocuments.us/reader034/viewer/2022042908/5f38fea55938b0685d4a1c8c/html5/thumbnails/24.jpg)