28 | | Each platform has specific logic here. Look in WebCore platform for |
29 | | the OS-specific and rendering (Skia, CG, Cairo) backends. |
| 27 | === [https://trac.webkit.org/browser/trunk/Source/WebCore/DOM DOM] === |
| 28 | |
| 29 | DOM is where the object related to the Document Object Model lives. Most of the DOM tree objects are here, the rest being in the specialized directory (like HTML for HTML elements). |
| 30 | |
| 31 | === [https://trac.webkit.org/browser/trunk/Source/WebCore/html HTML] === |
| 32 | |
| 33 | This directory holds everything related to HTML. There are the different elements (HTMLIFrameElement for <iframe>) as well as the HTML [https://trac.webkit.org/browser/trunk/Source/WebCore/html/parser parser] and the rendering logic for [https://trac.webkit.org/browser/trunk/Source/WebCore/html/canvas canvas]. |
| 34 | |
| 35 | === [https://trac.webkit.org/browser/trunk/Source/WebCore/css CSS] === |
| 36 | |
| 37 | This hosts the code that handles CSS. There is the CSSParser and the supporting objects for the representing the parsed output ([https://trac.webkit.org/browser/trunk/Source/WebCore/css/CSSSelector.h StyleSelector] for example). It also includes CSSStyleSelector which is responsible to apply the CSS information on the DOM tree to create the computed style. |
| 38 | |
| 39 | === [https://trac.webkit.org/browser/trunk/Source/WebCore/rendering rendering] === |
| 40 | |
| 41 | This contains all the code related to rendering an HTML page. The RenderTree objects live in this directory. The root class of any render tree object is RenderObject and each objects that needs a specialized behavior has a custom class. For more information about rendering, check out [wiki:WebCoreRendering]. |
| 42 | |
| 43 | A notable directory there is [https://trac.webkit.org/browser/trunk/Source/WebCore/rendering/style style] which contains the computed style as present in the RenderTree. |
| 44 | |
| 45 | === [https://trac.webkit.org/browser/trunk/Source/WebCore/bindings bindings] === |
| 46 | |
| 47 | This is where the JavaScript bindings live. Most of the JavaScript bindings are auto-generated from the IDL files using the script contained in [https://trac.webkit.org/browser/trunk/Source/WebCore/bindings/scripts/ scripts]. |
| 48 | |
| 49 | What is present in this directory is what is '''not''' auto-generated because it needs special attention (same origin checks for example) or because our scripts do not support autogenerating the code. |
| 50 | |
| 51 | Each JS engine has its own directory for its own bindings: [https://trac.webkit.org/browser/trunk/Source/WebCore/bindings/js/ JSC] and [https://trac.webkit.org/browser/trunk/Source/WebCore/bindings/v8 V8]. There is also a [https://trac.webkit.org/browser/trunk/Source/WebCore/bindings/common common] directory for bindings that can be shared between the engine. |
| 52 | |
| 53 | === [https://trac.webkit.org/browser/trunk/Source/WebCore/platform platform] === |
| 54 | |
| 55 | Each platform has specific logic here. It is meant to be an abstraction layer on top of the underlying port's library. The OS-specific and rendering (Skia, CG, Cairo) backends are implemented in the different subdirectories. |
| 56 | |
| 57 | Covered in this directory are: |
| 58 | * graphics |
| 59 | * networking |
| 60 | * text |
| 61 | * image decoding / encoding |
| 62 | * sql |
| 63 | * ... |