Oh the WebKits! During the past few weeks, thanks to
Igalia's
collaboration with the good folks
at Bloomberg,
I have descended from the heights of Epiphany and
WebKitGTK+ to the depths
of WebCore,
that obscure but cleverly assembled part of WebKit
that magnificently takes care of the logic inherent to
layouting, rendering, and the inner representation of
HTML documents. A fascinating aspect of WebCore is
that its architecture, completely decoupled from the
actual implementation in the different WebKit ports,
means that any change to its parts will affect all
ports and browsers built upon this marvelous piece of
engineering. Let me assure you, dear reader, the
challenges this implies are comparable only to the joy
it brings to this humble hacker, as the following will
reveal!
Among the many duties of WebCore lies controlling the
logic behind user interaction with HTML documents
— something that has changed considerably in
recent years. While originally, most interactive
editing in the web was limited to plain and boring web
forms, in this brave new world of ours it is also
possible to build complete HTML editors using nothing
but HTML and JavaScript access to the DOM. Have you
seen Wordpress' fantastic editor? Then you shall agree
with me that this is an extremely powerful feature.
But with great power comes great responsibility, as
the old saying goes. And with great responsibility
come bugs, says a more recent variation of the same
maxim. And where bugs are to be found, relentless
minds work tirelessly in order to ensure that your
browsing experience never ceases to improve. This is
one of the goals that Igalia, humbly but boldly,
pursues with utmost seriousness. And so it has been
that I, your humble servant, have spent countless
hours mastering my way through the DOM and editing
features of WebCore. Bugs have been fixed
already — some
affecting editing
in Windows, others
affecting editing
in GNU/Linux, and others
affecting all
platforms equally. More will be fixed in the
forthcoming weeks. I can only attempt to share my
excitement through these words, for I am unable to
express it in a way that would do it justice.