Changes between Version 7 and Version 8 of WebKit2
- Timestamp:
- Apr 9, 2010, 4:26:35 AM (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
WebKit2
v7 v8 47 47 == Process Architecture == 48 48 49 WebKit2 changes the WebKit stack to build a process management mechanism inside the WebKit API layer. 50 51 Here is what the architecture of a traditional WebKit port looks like: 52 49 53 [[Image(mac-webkit-stack.png)]] 50 54 55 Everything is in one process, and there is an API boundary between the application and the WebKit API. This is a simple model, and typically it's pretty easy for applications to reuse the WebKit API. 56 57 58 Here is what we are going for with WebKit2: 59 51 60 [[Image(webkit2-stack.png)]] 61 62 Notice that there is now a process boundary, and it sits *below* the API boundary. Part of WebKit operates in the UI process, where the application logic also lives. The rest of WebKit, along with WebCore and the JS engine, lives in the web process. The web process is isolated from the UI process. This can deliver benefits in responsiveness, robustness, security (through the potential to sandbox the web process) and better use of multicore CPUs. There is a straightforward API that takes care of all the process management details for you. 63 64 65 == How is This Different from Chromium? == 66 67 52 68 53 69 == Internals == … … 57 73 * CoreIPC - an abstraction for general message passing, including event handling. The current implementations use mach messages on Mac OS X, and named pipes on Windows. 58 74 * DrawingArea - an abstraction for a cross-process drawing area. Multiple drawing strategies are possible, the simplest is just a shared memory bitmap. 75 76 There are two other important abstractions, which may be pushed down to WebCore or WTF over time: 77 78 * Run Loops 79 * Work Queues