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