PlayStation WebKit Port Update
- Our fourth contributors meeting
- We used WebKit before that but now are contributing back
- Team
- Both in San Francisco and Tokyo
- ~1400 patches landed (~500 since last meeting)
- > 200 patches reviewed
- 3 reviewers
- 5 committers
- 2 contributors
- Remote Inspector
- Socket-based implementation
- Didn't have Apple's support or dbus
- Multi-platform
- Windows
- POSIX
- Can inspect across platforms
- Inspect from WinCairo, GTK or Mac
- Inspect WinCairo, GTK, or PlayStation targets
- Socket-based implementation
- cURL Network Layers
- Continued support and imporovements of the network Layer
- Passing additional layout tests
- HTTP/2 Support
- WinCairo as fast as Chrome on Windows for Akamai HTTP/2 Benchmark
- Brotli Support
- Sony enabled Intelligent Tracking Prevention
- Cookies handled by libPSL (Public Suffix List)
- We plan to continue maintaining and improving this network layer
- Continued support and imporovements of the network Layer
- Sanitizers and Control Flow Integrity
- Using CFI to harden WebKit and JSC
- Needs clang with LTO and hidden visibility
- Not running with JIT
- Currently working internally
- Running WebKit with other sanitizers
- MSVC is going to ship with built in Asan support
- WinCairo can build with clang-cl supports some sanitizers
- Address Sanitizer bots?
- Maybe based on gtk or wpe given better support for the sanitizers on Linux?
- Using CFI to harden WebKit and JSC
- CMake Improvements
- Target based
- Remove use of all the _LIBRARIES_INCLUDE_DIR and instead have them communicated through the target
- Mirror Apple Build
- Each project independently
- Copy all headers
- General clean-up of the build
- Upstreamed enhancements to Make for our Platform Visual Studio integration
- Target based
- JSC Improvements
- Implemented new language features
- Optional chaining (?.) and bullish coalescing (??)
- Still behind runtime flag but ready anytime
- Numeric literal separators (_)
- Hasbang (#!)
- Optional chaining (?.) and bullish coalescing (??)
- Added private (JSContextPrivateRef) C++ API for unhandled promise rejections
- Internal need for the callback
- No objective C api at this time
- Made various spec compliance fixes
- Mostly concerning early errors
- In two cases, managed to fix the spec instead!
- ECMAScript fixes based on JSC behavior
- Implemented new language features
- WinCairo Bots
- Migrated to new EWS
- Addressed issues with patch on Windows
- Cause of patches failing to apply
- Looking into AWS
- All builds running in docker containers
- Hoping to address scale and stability
- Addressed issues with patch on Windows
- Migrated to new EWS
- Downstream WebKit Port
- Currently branched off of latest Safari release branch
- Safari 608.1.48
- Still have a large amount of patches downstream
- Upstream focus has been on common code between WInCairo and PlayStation
- Sometimes internally near deadlines things get thrown in, trying to improve things when upstreaming
- Currently branched off of latest Safari release branch
- WebDriver for Socket Remote Inspector
- WebKitWebDriver Binary for GTK with our socket implementation
- Can connect to device to control web view
- WinCairo and Mac binary is also coming soon
- Developers use either Windows or Mac
- This was driven by internal QA requests
- We are interested in WPT in longer term
- WebKitWebDriver Binary for GTK with our socket implementation
- Internal Build Infrastructure
- BuildBot for internal WebKit Builds
- Based on build.webkit.org config
- Server hosted on AWS
- Articfacts to S3
- Tests running on device from containers
- Docker containers for building PlayStation port
- Built on top of Docker containers for Windows port
- BuildBot for internal WebKit Builds
- Plans for Next Year
- Complete Upstreaming of Port
- Improve WinCairo Build Bots and EWS
- Turn on Public PlayStation Build Bots
- Work towards a Single Windows Port
Q&A
- Question on internal bot version
- Running on 1.7 not 0.8
- Wanted to keep python 2
- Minor changes for version change
Last modified
5 years ago
Last modified on Nov 1, 2019, 1:05:46 PM
Note:
See TracWiki
for help on using the wiki.