= Sony WebKit Work =
WebKit team in Sony Interactive Entertainment
Don Olmstead presenting
* WebGL
* Rendering
WebKit on PlayStation!
== Why is it used? ==
* PS3, PS Vita, PS4 (Current Focus)
* Use it as a Browser on the PS4.
* But mainly in the PS UI.
* Social apps on PS4 are all web applications.
* But most importantly, the PlayStation Store.
== Port Information ==
* POSIX-compatible platform (based on FreeBSD)
* Cairo/TextureMapper
* Inspired by GTK/EFL/WinCairo
* WebKit 2-based.
* Uses cURL for networking.
* Cross compile from Windows workstations to PS4 device.
* Build using Clang.
== Goal: Move to Trunk ==
* Previously: Grab a Safari tagged SVN revision and port to their software.
* Bad!
- Always porting.
- Lots of manual porting of Security patches.
- Never contributing back!
== Current status ==
* Permission from Sony was granted to start contributing!
* JavaScriptCore now being built directly from trunk.
* Working on CMake/MSBuild toolchains to integrate a port.
* Preparing a BuildBot, working on getting a JSC test runner working.
== Potential Contributions ==
=== Platform Abstraction Layer ===
* Clear platform layer. Easier for "out-of-trunk" ports.
* Would lower the bar for people to use WebKit.
* Perhaps merge various *NIX ports.
=== Rendering Improvements ===
* Optimize performance: Immutable Render Trees?
* Optimize memory use
* CSS Containment - might dovetail nicely with Web Components.
* Houdini
- Would allow neat effects (highlight)
- Fun to do!
=== Developer Tooling ===
Found that developers don't have a good grasp of rendering:
- Why is a layer created?
- Example:
"Layerhood"
- Visualization of the current layers in a document.
- Real-time
- Maybe integrate to Web Inspector?
-> Here a really cool demo of their 3D layer visualization tool was presented.
=== HDR ===
* TV's can output HDR information.
* PlayStation 4 support
* HDR image format support.
= Q & A =
* Is the store and so forth run directly over network? Not file URLs, etc.?
- Yep. They have their own certificates, but otherwise just like a Web Browser.
* Are web developers working on PS4 directly?
- Sony exposes some special content to web engine on PS4, but generally they can work on desktop.
- Developers generally like to work on PC for performance, ease of developement.
* JIT?
- External developers (e.g., EA) can't use JIT.
- Sony doesn't expose JIT to developers.
* Games?
- It's available to developers, but they aren't aware of any currently taking advantage of it.
* WebGL?
- Not available to external developers, but is used inside PS4 store and platform content.
* Do you want to become a "real" in-tree port?
- Yes.
- Sony knows WebKit has been burned in the past. Hope that being present for this meeting and engaging will help pave the way.
* Platform Abstraction Layer
- Some work exists now.
- Sony (and the WebKit team) can build on it.
* TV
- Games can launch into browser to show relevant content.
- No good statistics on use.
* Why did you choose WebKit?
- Started before the Blink branch.
- JSC having an interpreted mode was important for security reasons.
- Chrome is the "Google Show", not good opportunities to contribute due to their army of engineers banging on it.
- WebKit's strategy is focused on performance and small footprint. This is critical for PS4 and devices.
- Blink is more about feature-feature-feature.
* Do you use WebKitTestRunner and related tools?
- Starting a process on PS is costly.
- Existing process of pushing a file to device and running it doesn't work well for them.
- Hope to work to allow one binary to go to device, then run the tests there in some set of processes.
* HTML5 Videos?
- Yes. Uses an internal library.
* How do you implement Accelerated Graphics?
- Sony has an OpenGL layer on top of something very similar to Vulcan.
- An Intel guy is doing some Canvas-drawing code right on the hardware. Might use some of this in the future.