This is a follow up to the gadget regression in T253912 to prevent similar regressions happening again.
The addPortletLink method in core makes the assumption that skins use a class "emptyPortlet" class for hidden classes. This is currently [[ https://codesearch.wmflabs.org/skins/?q=emptyPortlet&i=nope&files=&repos= | utilised only by Timeless and Vector. ]] It shouldn't assume this and it shouldn't assume that it's allowed to turn on hidden portlets - that decision should rest with the skins themselves.
# Acceptance criteria
[] It should be safe for Vector to rename emptyPortlet to anything it wants
[] Vector should be responsible for revealing a portlet that was previously hidden not core.
[] Timeless is updated to do the same.
[] The core code dealing with emptyPortlet should be updated to send a console warning that support for this class is being removed to allow 3rd party skins such as Metrolook and .
# Proposed solution
I propose that Vector makes use of the existing hook inside that method to reveal the menu itself.
```
mw.hook( 'util.addPortletLink' ).add( revealIfHidden)
```