= 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.