Changes between Version 1 and Version 2 of April 2011 Meeting/WebKit2


Ignore:
Timestamp:
Apr 27, 2011 1:48:58 PM (13 years ago)
Author:
jchaffraix@webkit.org
Comment:

Dumped my notes about WebKit2

Legend:

Unmodified
Added
Removed
Modified
  • April 2011 Meeting/WebKit2

    v1 v2  
    1 Chromium process models (for reference): [https://sites.google.com/a/chromium.org/dev/developers/design-documents/process-models]
     1== Current status ==
     2 * Sam explained the WebKit2 API using http://trac.webkit.org/wiki/WebKit2
     3 * Huge improvement over last year
     4 * It switched from a science project to a real browser
     5 * They had some issues with designing a Browser API (lots of classes need to be exposed but it is difficult to know which one specially are required to be)
     6 * They chose a C API (to avoid the fragile class problem in C++) but it may not have been a great choice: the Qt people do not use the WebKit2 API for example.
     7 * However the Gtk community sided with it.
     8 * Apple will push their out-of-process plugin code to the plugin/ directory.
     9 * However they want to *replace* one of our 5-6 implementations instead of adding yet another one.
     10 * DRT rewritten but did not have the same functionnality as the old one.
     11 * Problems with EventSender as it needs to run events synchronously.
     12
     13== Merging WebKitTestRunner and DRT ==
     14 * Sam was not sure how much could be merged?
     15 * Using code generator (IDLParser.pm) instead of manually writing the JS properties / methods could be a way to avoid duplicating code
     16 * Current problem: people write a new test that uses a new or existing feature in DRT and WebKitTestRunner does not pass....
     17 * Solution: IDL based generation (however some implementation '''will need''' to be different)
     18 * There will still be some amount of overlap between the 2
     19 * Alexey is proposing a new library to have consistent results as it was determined that ports differ in the way they dump their results
     20 ** "We need to merge DRT with itself"
     21
     22== API InjectedBundle ==
     23 * Kind of plugins to the Browser (they can be used to implement extensions)
     24 * Bits of code that you can inject to the web-process associated with a Browser. They can also listen to events.
     25 * All data in InjectedBundles should be considered untrusted.
     26 * It is basically an object graphs
     27 * It can be thought of as an "agreed-upon API for objects"
     28 * One of the nice feature of this API is that it does not need to expose the protocol
     29 * However it induces a lot of boiler plate code (mostly type checking)
     30 * Very similar to WK objects
     31 * Maybe add a better abstraction for dictionnary or array.
     32
     33== WebKit 1 - 2: Code sharing ==
     34 * Talk about sharing the key bindings in Gtk?
     35 ** Solution: Push to WebCore/platform so that they can be shared
     36 * Example: WindowsMessageBroadcaster
     37 * To enable code sharing, we need to have more logic in WebCore!
     38
     39== Missing from the current implementation ==
     40 * Multiple processes in the same tab (a la Chromium)
     41 * Chromium actually has a limited number of processes and change WebKit instances on the fly
     42 * Chromium process models (for reference): [https://sites.google.com/a/chromium.org/dev/developers/design-documents/process-models]
     43 * Rendering PDF
     44 * Stability is still not quite there yet
     45 * Refining how the sandboxing works (uses fancy mac implementation of sandboxing)
     46 * Want to move networking / filesystem access out of the web-process
     47 * Threaded mode is dead at the moment (should work if you have no processes at all), *may* want to be brought back but it is a challenge
     48 * Similar flag in Chromium, very handy for certain platform
     49 * low-level communication code is very specific to the platform!
     50 * Accessibility is supported on Mac but kind of difficult... Does not work on Windows and it will be difficult to implement
     51 * Chromium may be sharing the tree across process boundaries but WebKit2 is not
     52
     53== Multiple processes for the same browser ==
     54 * Envisioned
     55 * Would like to but lots of changes required