Page MenuHomePhabricator

Remove mobile-details mode from Special:Homepage
Open, MediumPublic



  • Remove RENDER_MOBILE_DETAILS from IDashboardModule
  • Remove references to RENDER_MOBILE_DETAILS throughought codebase
  • Remove LESS used to accomodate RENDER_MOBILE_DETAILS ---


Our first pass at mobile support for Special:Homepage involved using subpages, in the format Special:Homepage/{moduleName}, and these modules were all rendered on the server-side, not requiring any JavaScript to load.

Then we switched to using the mobile overlays provided by MobileFrontend / Minerva to offer a smoother experience to mobile users: Special:Homepage#/homepage/{moduleName}

Since then we have largely focused on the latter (mobile overlay) and fairly little on mobile detail.

This task would involve:

  1. checking to see how many mobile-detail events we are recording in proportion to the overall number of mobile events
  2. deciding if we want to keep supporting the mobile-detail view

Event Timeline

Per @nettrom_WMF:

If we aggregate on a per-session basis, it’s 1% of all mobile sessions. If we aggregate on a per-user basis, it’s 1.6% of all users. I think that makes sense if we expect users who visit multiple times to not use it extensively.

I'll add this to the agenda for the next engineering sync to confirm the next course of action based on these numbers.

In our meeting yesterday we decided to remove the mobile details render view to simplify the codebase.

kostajh renamed this task from Consider removing mobile-details mode from Special:Homepage to Remove mobile-details mode from Special:Homepage.Feb 1 2022, 2:19 PM
kostajh triaged this task as Medium priority.
kostajh removed a project: Growth Design.
kostajh edited projects, added GrowthExperiments; removed GrowthExperiments-Homepage.
kostajh updated the task description. (Show Details)

One way to do this would be to adjust SpecialHomepage::renderMobileSummary() to do $module->setPageURL( '#' );. That doesn't disable mobile details mode, but it makes it highly unlikely for a newcomer to end up on the mobile details rendering of a homepage module.

The downside is that, until the browser loads the homepage JS, the server-side rendered modules will not be clickable. It would be nice to have some loading indicator while we wait for the JS to bind to the module CSS classes.