Page MenuHomePhabricator

[Bug] Visiting a talk section flashes page content
Closed, ResolvedPublic3 Estimated Story Points

Description

Steps to reproduce

  1. Login and visit https://en.m.wikipedia.org/wiki/Barack_Obama#/talk on the MinervaNeue mobile site.
  2. Tap a talk section.
  3. 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

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 );
// } );

QA

Use beta cluster wiki

Event Timeline

ovasileva triaged this task as Medium priority.Apr 30 2019, 3:16 PM

@Niedzielski do you know what's causing this behavior?

Jdlrobson set the point value for this task to 3.Jul 24 2019, 5:30 PM

Change 525442 had a related patch set uploaded (by Jdlrobson; owner: Jdlrobson):
[mediawiki/skins/MinervaNeue@master] partly correct the transitions between talk overlays

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

Change 525441 had a related patch set uploaded (by Jdlrobson; owner: Jdlrobson):
[mediawiki/extensions/MobileFrontend@master] Hack: Delay overlay attachment

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

Jdlrobson raised the priority of this task from Medium to High.Jul 30 2019, 4:52 PM

Change 525442 merged by jenkins-bot:
[mediawiki/skins/MinervaNeue@master] partly correct the transitions between talk overlays

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

Change 525441 merged by jenkins-bot:
[mediawiki/extensions/MobileFrontend@master] Hack: Delay overlay attachment

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

ovasileva added subscribers: Edtadros, ovasileva.

Looks good, moving to signoff
QA:

  1. Go to https://en.m.wikipedia.beta.wmflabs.org/wiki/United_States_Senate#/talk
  2. Select talk topic
  3. Select back

Results: loading cog wheel appears prior to page load

@nray I'm not sure if I'm understanding the steps correctly, but I'm seeing the page content flash upon tapping "back" from a talk page.

Environments observed: iPhone/Safari, Android/Chrome, Mac/Chrome

The screenshots below are from a video recording I took on Mac/Chrome (because it was easiest to screen record). The relevant frames are below.

first time I tap <
Screen Shot 2019-08-06 at 4.16.06 PM.png (1×1 px, 669 KB)
Screen Shot 2019-08-06 at 4.16.12 PM.png (1×1 px, 760 KB)
Screen Shot 2019-08-06 at 4.16.18 PM.png (1×1 px, 552 KB)
second time I tap <
Screen Shot 2019-08-06 at 4.16.46 PM.png (1×1 px, 651 KB)
Screen Shot 2019-08-06 at 4.16.49 PM.png (1×1 px, 822 KB)
Screen Shot 2019-08-06 at 4.16.53 PM.png (1×1 px, 551 KB)
closing the talk overlay
Screen Shot 2019-08-06 at 4.17.15 PM.png (1×1 px, 548 KB)
Screen Shot 2019-08-06 at 4.17.19 PM.png (1×1 px, 815 KB)
Screen Shot 2019-08-06 at 4.17.22 PM.png (1×1 px, 766 KB)

pinging @Jdlrobson since I only code reviewed although I'm having trouble reproducing what alex is seeing at least on my laptop

Yeh this is not perfect and won't be until we rewrite the overlay manager. This is the best it's going to be until then.

@ovasileva @Jdlrobson what should we do with this task? Sign it off, make it a subtask of T214647, something else?

In T221978#5399270, @alexhollender wrote:

@ovasileva @Jdlrobson what should we do with this task? Sign it off, make it a subtask of T214647, something else?

I think we can sign off for now since the spinner does show