Porting the Page Load Progress module to Drupal 8
Back in 2012, my colleague Mariano released the Page Load Progress module for Drupal 7. This is not a widely popular module but I love it. Simply put, it will display a spinner when a page is taking too long to load, to prevent your users from clicking around or leave the page. It excels for time-consuming form submissions.
The path to being a co-maintainer
In mid-2014, I wanted to start learning Drupal 8 so I figured porting the Page Load Progress module to D8 would be twofold: 1/ do something meaningful to make the module live during the Drupal 8 lifecycle 2/ get to learn about the Drupal 8 API changes.
I quickly filed an issue in the Page Load Progress issue queue to get community feedback as I was 80% through porting the module. For about 2 years I never heard back, so at some point I realized the module was no longer being maintained and a critical Views issue on Drupal 7 (and by extension Drupal 8) was most likely preventing the module from getting wider adoption.
I reached out to Mariano and he said he was no longer doing Drupal development and was happy for me to take over the module. Ha! Didn’t think about being a module maintainer. I’m not even a developer. That being said I liked the idea that Open source is all about passing on the torch and I had to do my part until I’d pass it on to someone else.
So, I followed the Dealing with unsupported (abandoned) projects guidelines and filed an issue to take over maintaining the Page Load Progress module. The next steps were for me to get community awareness and help with this new challenge. I thus filed a Drupal 8 Contrib Porting Tracker issue and reached out to Dom. to make him a co-maintainer and mentor on the project, since he has extensive experience with Drupal 8.
Taking it from there
During the summer, we then worked on completing the port of the module and brainstormed on where to bring it next. The main highlights are:
- Full BrowserTestBase coverage
- ESC key can now kill the throbber when it’s stuck
- Views can now be edited when the Page Load Progress module is enabled
Usage statistics show people are starting using it again, which likely means we did have a blocker with this annoying Views issue.
Next we want to work on implementing JavaScriptTestBase and also allow users to exclude arbitrary paths from triggering the throbber.
Conceptually, the Page Load Progress is a very simple module. But when you think about it, you can considerably improve its inner workings, support edge-cases better and have full JS test coverage to make it rock solid. We’re on it. See you in the issue queue!