PackageDescription: WebKit


Web Kit

Last published: February 13, 2020 by 'thomasb'

Defines 13 Classes
Extends 12 Classes


WebKit is a package that tries to provide access to the WebKit browser engine. This WebKit project (see http.//www.webkit.org) is an open source project to maintain a publicly available browser engine that can be used in applications. On windows e.g. it consists of DLLs, on Mac OS X it is already part of the operating system.

The original idea to use WebKit within VisualWorks goes back to Antony Blakey. He created a first feasibility study on Mac OS. Inspired by that, I tried to create the same for the Windows platform.

The WebKit package contains the classes for dealing with WebViews that are independent of the current WebKit port used.

On Windows as the first platform that is currently under development, WebView can be driven by COM interfaces, while other platforms like GTK+ e.g. on Linux use a plain C API, or Mac OS X uses an Objective-C API. The primary goal is to hide these implementation specific details by using WebKit classes for the main functionality that use an OS interface or "port interface" to drive Webkit. The port specific classes must know about implementation specific details, the classes in this package do not, they just forward to their OS interface. The port specific classes may probably be generated from the API specification for the different ports or platforms.

So currently there are the main classes WebView which is the central interface to WebKit. Usage dependent functionality is provided by delegate classes that can be customized to the specific needs. Delegates are used for notifications about e.g. the loading status, but also to make decisions about actions to take or suppress.

A WebView widget class named WebViewComponent is the gateway to the UI of WebKit. Its spec class allows a WebView to be selected from the UIPalette.