The following tips are for new members of any WebKit mailing list who want to get help on learning WebKit. These include advice on other ways to find answers and help that go beyond WebKit’s mailing lists.
Your question may have already been answered. Make sure you search at least webkit-help and webkit-dev archives. There are two ways to query the archives: doing a web search or the gmane archives.
You can limit a web search to the mailing lists’ archives by using “site:lists.webkit.org”.
Here is a small example on how to query information about ‘RenderLayer’ on the previous mailing lists archives:
Give as many details as possible. Generic questions will likely not get a valuable answer.
Make sure you include at least:
- which port are you using: Mac, Windows, Chromium, Qt, Gtk, Wx, …
- which operating system are you using? For Linux, paste the result of
Depending on your issue, make also sure to include:
- the revision or branch used
- which compiler are you using? (including the version)
- the CPU used
- the command invoked
- the complete output of the command. Do not paste only what you think is relevant.
- the expected result
If one of these item is very long (hundreds of lines), do not paste it in the email. Instead use http://pastebin.com/ (or other similar services) and include the link in the email. Since we cannot read your mind, the more you give us, the easier it will be for us to help you.
WebKit does not compile!
When building Apple's port revision 34567 using `Tools/Scripts/build-webkit --debug --no-svg`, I get the following error: Cannot find class Foobar. (You can find the complete output here: . I have looked at the archives and the commits but did not find any solution. Does anyone know what could be the issue and whether this has been fixed?
There are some questions that appear regularly on the mailing list. We have included the answers here for your convenience.
The most reliable way to answer it is by looking at the source code. WebKit development is fast paced. Often the requested feature is already implemented although it has not been widely used yet. Bear in mind that sometimes the level of supports between different ports is not the same.
The following links are also useful:
- Wikipedia comparison of the layout engines: HTML support
- Wikipedia comparison of the layout engines: XML support
- Wikipedia comparison of the layout engines: CSS support
- Wikipedia comparison of the layout engines: DOM support
- Wikipedia comparison of the layout engines: HTML5 support
- Wikipedia comparison of the layout engines: ECMAScript support
- Wikipedia comparison of the layout engines: SVG support
- Wikipedia comparison of the layout engines: non standard HTML support
As a starting point, first check the successful port how to page.
Granted, it’s not complete, so feel free to contribute. Try to find a port similar to what you are targeting and use it as a basis, instead of writing everything from scratch. While working on your port, you may find that you wished the page had mentioned something. If so, please modify the page and add it.
The best way to answer this is to use your debugger. Set a break point where you want to investigate and get a stack trace. Then, you will see which functions call your code.
- We offer our help on a voluntary basis so you can’t expect us to be 100% at your disposal. Be patient. No need to insist on the urgency. Asking urgently for an answer usually does not get you the answer faster.
- We love to grow our community, and thus we like to help beginners. After all, every expert was a beginner at some point in his/her lifetime. However, nobody likes lazy beginners. Thus, if you face a problem, try to analyze and solve it yourself first before asking for help.
- WebKit is a big project with a huge code base, so you must be willing to spend your time and effort on learning the source code. Remember, you can not become a Grand Master just by skimming some chess learning books.
- Last but not least, there are often complaints that WebKit code is not easy to understand. Well, this is your chance to contribute! We have started some helping pages on this, just check out: our wiki’s page on how to get around the code
Do not hesitate to fill the wiki page with new information which will help others to learn!