Version 1 (modified by Jon Davis, 6 years ago) (diff)


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!<br />
    • Always porting.<br />
    • Lots of manual porting of Security patches.<br />
    • 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 &quot;out-of-trunk&quot; 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<br />
    • Would allow neat effects (highlight)<br />
    • Fun to do!

Developer Tooling

Found that developers don't have a good grasp of rendering:

  • Why is a layer created?
  • Example:


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


  • TV's can output HDR information.
  • PlayStation 4 support
  • HDR image format support.

Q &amp; 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 &quot;real&quot; 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 &quot;Google Show&quot;, 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.