Posted by David Levin on Thursday, August 19th, 2010 at 8:19 am
Kenneth is one of the members of the WebGL working group and has been contributing to its implementation in WebKit for over a year. He is beginning to branch out by working on GPU acceleration for more areas in WebKit’s rendering.
Please join me in congratulating Kenneth on his reviewer status!
Posted by Beth Dakin on Tuesday, August 17th, 2010 at 5:52 pm
If you’ve been following check-ins for the last year or so, then you already know that some dedicated contributors have been working on a MathML implementation in WebKit. I am very pleased to announce that the implementation is now turned on by default in the WebKit build and in WebKit Nightlies! Big thanks to Alex Milowski, François Sausset, and everyone else who has worked on MathML in WebKit.
Check out Riemann’s Zeta Function, as rendered by WebKit:
Posted by Gustavo Noronha on Wednesday, August 11th, 2010 at 11:10 am
Now, I know everyone wants posts about cool new features, and I assure you: they are coming!
For the time being, I would like to invite everyone to join me in congratulating Martin Robinson on his reviewer status! Martin has been doing a huge amount of work on improving the foundations for the cairo and GTK+ ports of WebKit for over a year now. With work ranging from drawing to drag and drop, Martin has also spent time improving editing, event handling, and the test harness of the GTK+ port. Welcome, Martin!
Posted by Sam Weinig on Tuesday, August 10th, 2010 at 3:00 pm
Chris is one of the original architects of the accelerated compositing backend for WebKit. He is a graphics guru, who is currently the editor of the WebGL specification being worked on in the Khronos Group and one of the main people working on WebKit’s implementation of it.
Please join me in congratulating Chris on his reviewer status!
Posted by Eric Seidel on Thursday, August 5th, 2010 at 12:39 pm
Over the past few months, we’ve been hard at work implementing the parsing algorithm from HTML5. Before HTML5, there was no standard for how browsers should parse invalid HTML. As a result, every browser developed their own parsing quirks, harming interoperability for pages that contain invalid HTML. HTML5, in contrast, specifies a complete algorithm for parsing HTML documents. Switching to the HTML5 parsing algorithm has three main benefits:
Better interoperability between browsers. All browsers that implement the HTML5 parsing algorithm should parse HTML the same way, which means your web page should parse the same way in Firefox 4 and the WebKit nightly, even if it contains invalid markup. Improving interoperability makes it easier to author HTML by reducing the differences between browsers.
Better compatibility with web pages. A mind boggling amount of data analysis has gone into designing the HTML parsing algorithm. By crawling the web, the designers were able to carefully weigh the trade-offs and maximize compatibility with existing web pages. By implementing the algorithm, we leverage their effort and improve the compatibility of our parser, making it less likely that users will run across broken pages.
SVG and MathML in HTML. One of the cool new features of the HTML5 parsing algorithm is the ability to embed SVG and MathML directly in HTML pages. To embed SVG, you simply add an <svg> tag to your HTML page and you can use the full power of SVG.
(View source to see the demo SVG code inline in this HTML post.)
We’ve been implementing the HTML5 parsing algorithm in phases. Two months ago, we finished the first phase, which consisted of the tokenization algorithm. Late last night, we finished the second major piece: the tree builder algorithm. Together, these two algorithms form the core of the parser and consist of over 10,000 lines of code. In the next phase, we’ll tackle fragment parsing (which is used by innerHTML and HTML5test.com).
One of the challenges we’ve encountered in switching to the HTML5 parsing algorithm is that some HTML documents rely on WebKit-specific parser quirks. For example, some websites use self-closing script tags (e.g., <script src=”…” />). WebKit is the only major rendering engine that supports this syntax (other browsers ignore the trailing “/” and look for a “</script>” tag). By implementing HTML5, we improve interoperability with other browsers at the cost of compatibility with some WebKit-specific content. In the long run, however, we believe these changes are good for the web platform as a whole.
Implementing the HTML5 parsing algorithm has also given us an opportunity to give back to the community. For example, we’ve sent feedback to the W3C HTML working group about how to improve the correctness and compatibility of the parsing algorithm itself and we’ve contributed over 250 test cases to the HTML5lib parser test suite.
We would like to invite you to take a nightly build for a spin and give the new parsing algorithm a try. If you run into any compatibility or stability problems, please let us know by filing a bug.
WebKit is open source software with portions licensed under the
LGPL and
BSD licenses.
Complete license and copyright information can be found within the code.