Steps to reproduce
- Login and visit https://en.m.wikipedia.org/wiki/Barack_Obama#/talk on the MinervaNeue mobile site.
- Tap a talk section.
- Tap back.
Expected results
- A loading interstitial is shown as needed.
Actual results
- The underlying article is shown momentarily.
Environments observed
- Browser version: Chromium v73.0.3683.103
- OS version: Ubuntu v19.04
- Device model: Desktop
- Device language: English
Check any additional observations
- Observed on the beta cluster wiki
- Observed on a production wiki
- Observed on Vector desktop skin
- Observed on MinervaNeue responsive skin
- Observed while logged in
- Observed while not logged in (anonymous)
Dev notes
It seems to be an issue in the OverlayManager. We wait for a Deferred, factoryResult, after hiding the last overlay but before showing the next:
// http://stackoverflow.com/a/13075985/365238 if ( typeof factoryResult.promise === 'function' ) { factoryResult.then( function ( overlay ) { match.overlay = overlay; attachHideEvent( overlay ); self._show( overlay ); } ); } else { match.overlay = factoryResult; attachHideEvent( match.overlay ); self._show( factoryResult ); }
If the following lines are commented out, the old overlay disappears and the new one is never shown.
// factoryResult.then( function ( overlay ) { // match.overlay = overlay; // attachHideEvent( overlay ); // self._show( overlay ); // } );