Skip to content

Support Webdriver based tests project

Josh Matthews edited this page Mar 11, 2019 · 19 revisions

Contact: Josh Bowman-Matthews (jdm on IRC in #servo)

Servo supports a minimal subset of the Webdriver protocol. We want to extend this support and pass the conformance tests to demonstrate our implementation's correctness. Additionally, we want to support running Webdriver-based automated tests like the WebBluetooth test suite, which require complex browser control and automated interactions that WebDriver provides.

This project will require reading and writing code in all of Rust, Python, and JavaScript. It is expected that any project applicants are comfortable writing code in at least one of those, and comfortable reading at least one other. For example, applicants that are curious about Rust but have never used it, but are comfortable using Python and JavaScript are welcome to apply.

If there are parts of this project description that are confusing, please contact Josh with questions.

Project breakdown

Reference:

Current implementation:

Suggestions for preparation

(Feel free to ask questions in #servo on irc.mozilla.org, or our mailing list!)

  • Compile Servo. This can be a resource-intensive and complicated process on some machines and operating systems; if Servo will not compile in your environment it is best to find another GSoC project instead.
  • Gain experience using Rust by solving an easy issue. Please leave a comment saying that you're working on it.
  • Experiment with using webdriver to control Servo
  • Try implementing a handler for one of the missing WebDriver APIs in Servo's server

Expectations for project applications

Your project application should demonstrate the following:

  • you understand the problem that is being solved
  • you have relevant technical experience that will help solve the problem
  • you have thought about how to solve the problem and what work will be required

To help prepare your application, please think about these questions:

  • what is Servo? what is WebDriver? what is the relationship between Servo and WebDriver?
  • what is a WebDriver conformance test? why does Servo want to run them, and what will the results mean?
  • what is testdriver.js? how is it related to WebDriver and Servo?
  • what programming languages will be useful for each of the parts of the project? why?
  • what parts of the project will require learning new technologies/frameworks? what parts of the project make use of familiar technology?

An effective project application includes a proposed timeline that breaks down the project into pieces of work that are expected to take 1-2 weeks to complete. This breakdown will demonstrate that you have thought about the work involved in the project, and reflects your estimate for how long the work will take based on your personal experience.

Clone this wiki locally