Version 1 (modified by 15 years ago) ( diff ) | ,
---|
WebKit2 - High Level Document ¶
WebKit2 is a new C-based non-blocking API to WebKit. This allows WebCore, and all the heavy lifting it does, to be done in a separate context, be that a background-thread or background-process.
API: ¶
In order to achieve the goal of a non-blocking API, several techniques are used to make the API usable while still providing a comprehensive set of features to the embedder. These techniques include:
- Notification style client callbacks (e.g. didFinishLoadForFrame) These inform the embedder that something has happened, but do not give them the chance to do anything about it.
- Policy style clients callbacks (e.g. decidePolicyForNavigationAction) These allow the embedder to decide on an action at their leisure, notifying the page through a listener object.
- Policy settings (e.g. WKContextSetCacheModel, WKContextSetPopupPolicy) These allow the embedder to opt into a predefined policy without any callbacks into the UIProcess. These can either be an enumerated set of specific policies, or something more fine-grained, such as a list of strings with wildcards.
- Injected code (e.g. WebBundle) Code can be loaded into the WebProcess for cases where all the other options fail. This can useful when access to the DOM is required. [Planned, but not currently implemented]
The major API classes are:
WKContextRef
- Encapsulates all pages related to specific use of WebKit. All pages in this context share the same visited link set, local storage set, and preferences.
WKPageNamespaceRef
- Encapsulates all pages that can script each other.
WKPageRef
- Basic unit of browsing. Stays the same as the main frame changes.
WKView[Ref]
- Native view that hooks into the platform's toolkit. On Windows, this wraps a HWND. On the Mac, it inherits from NSView.
Attachments (3)
-
mac-webkit-stack.png
(38.5 KB
) - added by 15 years ago.
mac-webkit-stack
-
webkit2-stack.png
(61.8 KB
) - added by 15 years ago.
webkit2-stack
- chromium-webkit-stack.png (62.0 KB ) - added by 15 years ago.
Download all attachments as: .zip
Note:
See TracWiki
for help on using the wiki.