wiki:PortIntegrationArchitectureIssues

Version 3 (modified by benjamin@webkit.org, 7 years ago) (diff)

--

Port Integration Architecture Issues

Premise

The WebKit project supports many ports: Apple-Mac, Apple-Win, Qt, GTK, EFL and more. As this grew organically and have allowed WebKit to have a thriving community of browsers and devices, that plurality of configurations have caused our architecture to be less flexible, making it harder to change things in the core without "breaking" one of the variety of ports. This page comes to serve as an entry point to track those issues, and to attempt to find high level solutions to some of them, leaving the details to bugzilla.

Examples of friction points

  • Too much use of internal JSC and WK2 internals in port-specific code
  • Too many ways to accomplish scroll delegation and tiled rendering
  • GraphicsContext exposes too many internals, hard to decouple its interface from implementation detail
  • It's difficult/impossible to port WebKit to a platform without changing the main source tree.
  • The plurality of build systems makes it too easy to break other ports when files are added/removed.
  • ...

Examples of bugs that address those issues:

Port QObject bridge to JSC

Qt: Replace internal API usage in Qt WK2 with C API

EFL: Replace internal API usage in Qt WK2 with C API

Move CoordinatedGraphics to WebCore