| 1 | = Sony WebKit Work = |
| 2 | |
| 3 | WebKit team in Sony Interactive Entertainment |
| 4 | |
| 5 | Don Olmstead presenting |
| 6 | |
| 7 | * WebGL |
| 8 | * Rendering |
| 9 | |
| 10 | WebKit on PlayStation! |
| 11 | |
| 12 | == Why is it used? == |
| 13 | |
| 14 | * PS3, PS Vita, PS4 (Current Focus) |
| 15 | * Use it as a Browser on the PS4. |
| 16 | * But mainly in the PS UI. |
| 17 | * Social apps on PS4 are all web applications. |
| 18 | * But most importantly, the PlayStation Store. |
| 19 | |
| 20 | == Port Information == |
| 21 | |
| 22 | * POSIX-compatible platform (based on FreeBSD) |
| 23 | * Cairo/TextureMapper |
| 24 | * Inspired by GTK/EFL/WinCairo |
| 25 | * WebKit 2-based. |
| 26 | * Uses cURL for networking. |
| 27 | * Cross compile from Windows workstations to PS4 device. |
| 28 | * Build using Clang. |
| 29 | |
| 30 | == Goal: Move to Trunk == |
| 31 | |
| 32 | * Previously: Grab a Safari tagged SVN revision and port to their software. |
| 33 | * Bad!<br /> |
| 34 | - Always porting.<br /> |
| 35 | - Lots of manual porting of Security patches.<br /> |
| 36 | - Never contributing back! |
| 37 | |
| 38 | == Current status == |
| 39 | |
| 40 | * Permission from Sony was granted to start contributing! |
| 41 | * JavaScriptCore now being built directly from trunk. |
| 42 | * Working on CMake/MSBuild toolchains to integrate a port. |
| 43 | * Preparing a BuildBot, working on getting a JSC test runner working. |
| 44 | |
| 45 | == Potential Contributions == |
| 46 | |
| 47 | === Platform Abstraction Layer === |
| 48 | |
| 49 | * Clear platform layer. Easier for "out-of-trunk" ports. |
| 50 | * Would lower the bar for people to use WebKit. |
| 51 | * Perhaps merge various *NIX ports. |
| 52 | |
| 53 | === Rendering Improvements === |
| 54 | |
| 55 | * Optimize performance: Immutable Render Trees? |
| 56 | * Optimize memory use |
| 57 | * CSS Containment - might dovetail nicely with Web Components. |
| 58 | * Houdini<br /> |
| 59 | - Would allow neat effects (highlight)<br /> |
| 60 | - Fun to do! |
| 61 | |
| 62 | === Developer Tooling === |
| 63 | |
| 64 | Found that developers don't have a good grasp of rendering: |
| 65 | - Why is a layer created? |
| 66 | - Example: |
| 67 | |
| 68 | "Layerhood" |
| 69 | - Visualization of the current layers in a document. |
| 70 | - Real-time |
| 71 | - Maybe integrate to Web Inspector? |
| 72 | -> Here a really cool demo of their 3D layer visualization tool was presented. |
| 73 | |
| 74 | === HDR === |
| 75 | |
| 76 | * TV's can output HDR information. |
| 77 | * PlayStation 4 support |
| 78 | * HDR image format support. |
| 79 | |
| 80 | = Q & A = |
| 81 | |
| 82 | * Is the store and so forth run directly over network? Not file URLs, etc.? |
| 83 | - Yep. They have their own certificates, but otherwise just like a Web Browser. |
| 84 | * Are web developers working on PS4 directly? |
| 85 | - Sony exposes some special content to web engine on PS4, but generally they can work on desktop. |
| 86 | - Developers generally like to work on PC for performance, ease of developement. |
| 87 | * JIT? |
| 88 | - External developers (e.g., EA) can't use JIT. |
| 89 | - Sony doesn't expose JIT to developers. |
| 90 | * Games? |
| 91 | - It's available to developers, but they aren't aware of any currently taking advantage of it. |
| 92 | * WebGL? |
| 93 | - Not available to external developers, but is used inside PS4 store and platform content. |
| 94 | * Do you want to become a "real" in-tree port? |
| 95 | - Yes. |
| 96 | - Sony knows WebKit has been burned in the past. Hope that being present for this meeting and engaging will help pave the way. |
| 97 | * Platform Abstraction Layer |
| 98 | - Some work exists now. |
| 99 | - Sony (and the WebKit team) can build on it. |
| 100 | * TV |
| 101 | - Games can launch into browser to show relevant content. |
| 102 | - No good statistics on use. |
| 103 | * Why did you choose WebKit? |
| 104 | - Started before the Blink branch. |
| 105 | - JSC having an interpreted mode was important for security reasons. |
| 106 | - Chrome is the "Google Show", not good opportunities to contribute due to their army of engineers banging on it. |
| 107 | - WebKit's strategy is focused on performance and small footprint. This is critical for PS4 and devices. |
| 108 | - Blink is more about feature-feature-feature. |
| 109 | * Do you use WebKitTestRunner and related tools? |
| 110 | - Starting a process on PS is costly. |
| 111 | - Existing process of pushing a file to device and running it doesn't work well for them. |
| 112 | - Hope to work to allow one binary to go to device, then run the tests there in some set of processes. |
| 113 | * HTML5 Videos? |
| 114 | - Yes. Uses an internal library. |
| 115 | * How do you implement Accelerated Graphics? |
| 116 | - Sony has an OpenGL layer on top of something very similar to Vulcan. |
| 117 | - An Intel guy is doing some Canvas-drawing code right on the hardware. Might use some of this in the future. |