Page MenuHomePhabricator

[subtask] Server side render the MainMenu to improve the main menu experience
Closed, ResolvedPublic

Description

To support progress in T225213 which will improve the main menu experience for all users (including non-js users) and to remove maintenance burden (Special:MobileMenu) we should server side render the MainMenu in Minerva.

This will enable us to apply a CSS only solution meaning users will never land on the Special:MobileMenu page again.

Acceptance criteria

  • The menu is server side rendered
  • The MainMenu inside Minerva no longer makes use of MobileFrontend's View.
  • Menu templates are moved into the includes folder.

Developer notes

Cached HTML is an issue. We will need to do this task in 2 chunks

  • Server side render the contents of the main menu (DONE)
  • Wait 2 weeks (from 8th October)
  • Remove the client side rendering

QA steps

In an incognito window ensure you can open and close the menu on a variety of pages. Use the random button to find old pages which may not have been edited for some time. Do any pages not show the menu?

QA Results

ACStatusDetails
1T234650#5640484

Sign off steps

Event Timeline

Jdlrobson renamed this task from Dev: Server side render the MainMenu to Dev: Server side render the MainMenu to improve the main menu experience.Oct 4 2019, 3:39 PM
Jdlrobson created this task.

Change 540895 had a related patch set uploaded (by Jdlrobson; owner: Jdlrobson):
[mediawiki/skins/MinervaNeue@master] Render main menu and shield on server side

https://gerrit.wikimedia.org/r/540895

Change 540896 had a related patch set uploaded (by Jdlrobson; owner: Jdlrobson):
[mediawiki/skins/MinervaNeue@master] MainMenu is a controller not a View and server rendered (take 2)

https://gerrit.wikimedia.org/r/540896

Change 540895 merged by jenkins-bot:
[mediawiki/skins/MinervaNeue@master] Render main menu and shield on server side

https://gerrit.wikimedia.org/r/540895

Jdlrobson changed the task status from Open to Stalled.Oct 4 2019, 9:23 PM
Jdlrobson added a project: User-Jdlrobson.
Jdlrobson updated the task description. (Show Details)

Who's going to do the QA, which, as written, is quite technical? Also, will this change have a negative impact on performance?

Jdlrobson changed the task status from Stalled to Open.Oct 15 2019, 11:41 PM
Jdlrobson moved this task from Incoming to Needs Prioritization on the Web-Team-Backlog board.

Sorry for the delayed reply.
SSR the main menu adds 0.2kb to the HTML. The JS and CSS remains the same.

Removing the frontend code is where I see potential risk. This will be a positive impact for performance as it will reduce JS
https://gerrit.wikimedia.org/r/540896 has not been merged yet.

This should go through the sprint board as per usual. This is now unblocked.

Jdlrobson renamed this task from Dev: Server side render the MainMenu to improve the main menu experience to [subtask] Server side render the MainMenu to improve the main menu experience.Oct 29 2019, 5:53 PM

Change 540896 merged by jenkins-bot:
[mediawiki/skins/MinervaNeue@master] MainMenu is a controller not a View and server rendered (take 2)

https://gerrit.wikimedia.org/r/540896

ovasileva triaged this task as Medium priority.Nov 5 2019, 12:28 PM
Edtadros subscribed.

Test Result

Status: ✅ PASS
OS: macOS Mojave
Browser: Chrome
Device: MBP
Emulated Device: iPhoneX

Test Artifact(s):

QA steps

✅ AC1: In an incognito window ensure you can open and close the menu on a variety of pages. Use the random button to find old pages which may not have been edited for some time. Do any pages not show the menu?

I checked a number of pages using the Random menu. I also checked a number of pages using Special:AncientPages. In all cases the menu opened, closed, and I was able to click the links on it.

ovasileva updated the task description. (Show Details)

resolving