Changes between Version 7 and Version 8 of WebKit2


Ignore:
Timestamp:
Apr 9, 2010 4:26:35 AM (10 years ago)
Author:
mjs@apple.com
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WebKit2

    v7 v8  
    4747== Process Architecture ==
    4848
     49WebKit2 changes the WebKit stack to build a process management mechanism inside the WebKit API layer.
     50
     51Here is what the architecture of a traditional WebKit port looks like:
     52
    4953[[Image(mac-webkit-stack.png)]]
    5054
     55Everything 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
     58Here is what we are going for with WebKit2:
     59
    5160[[Image(webkit2-stack.png)]]
     61
     62Notice 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
    5268
    5369== Internals ==
     
    5773 * 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.
    5874 * DrawingArea - an abstraction for a cross-process drawing area. Multiple drawing strategies are possible, the simplest is just a shared memory bitmap.
     75
     76There are two other important abstractions, which may be pushed down to WebCore or WTF over time:
     77
     78 * Run Loops
     79 * Work Queues