Asking Questions

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.

Search the Archives

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:

Be Precise

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 uname -a

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.

An Example of a Question

Wrong:

WebKit does not compile!

Right:

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?

Usual Questions and Answers

There are some questions that appear regularly on the mailing list. We have included the answers here for your convenience.

Does WebKit Support Foo?

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:

I Want to Port WebKit to a New Platform

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.

How Does Bar Work?

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.

Things to Remember When You Ask a Question

  • 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!