Web Status Developer Tooling

Google Summer of Code 2021
Chromium
Mentor - Jason Robbins, Google, US

About WebStatus

ChromeStatus.com is a web application that tracks the set of features in the Chrome browser and other popular browsers. It is also the first level of communication between Chromium Developers and the Web Development Community.

Source code of WebStatus is hosted on GitHub in the following repository:-

GSoC Project Description

This project aimed at making the following modifications to WebStatus:-

  1. Make changes that are steps towards upgrading the app from Python 2 to Python 3.
  2. Design and implement a roadmap view for upcoming and past milestones.
  3. Improve the project quality by fixing defects and improving test coverage.

Pull Requests Raised

The Python 3 runtime of App Engine doesn’t include bundled services like GAE Users API. Instead, Google Cloud provides standalone products that are equivalent to most of the bundled services in the Python 2 runtime. If no such standalone product is available, the developers are expected to use third-party products or other workarounds. As a part of this project, the following services were migrated:-

  1. URLFetch to Native Python Requests
  2. GAE Users to Google Sign-In
  3. GAE DB Client Library to GAE NDB Library to Cloud NDB Library

The following pull requests were raised:-

WebStatus has a releases page which contains information about the new features that will be added in the next three versions of Chrome. One of the requirements was to upgrade this page so that it could contain information about all versions of Chrome. The other requirements were to make the page API-driven and responsive to viewport size. Therefore, a new page, called ‘upcoming’, was created. The following was done:-

  1. To make the page API-driven, two new APIs were created viz, Features API and Channels API.
  2. Support was added for infinite side-scrolling to the upcoming and past Chrome Versions.
  3. For each chrome version, features were displayed after grouping them according to the stage in their lifecycle.
  4. Two new web components were designed which were inspired by Redux.
  5. Support was added for feature fighlighting on hovering over the feature.
  6. The web page was designed to be responsive to viewport size.

The following PRs were raised:-

As mentioned, the project also involved fixing bugs and improve usability. The following is the complete list of UI enhancements and bug fixes that were done as a part of this project:-

Project Status

By the end of GSoC 2021, all the above-mentioned PRs were merged into the main branch and all the goals of the project were met.

Learnings

While working on this project, I got to learn the following:-

See Also