Page MenuHomePhabricator

WindowManager does not clear iOS scroll prevention classes if teardown is called while a window is open
Closed, ResolvedPublic

Description

(reported by @mewoph in Slack)

  1. Open the mobile site, and set your user agent to iOS, e.g. by using the Chrome debugger mobile device toolbar
  2. Open a full page dialog:
mw.loader.using('oojs-ui').then( function () {
    OO.ui.alert('test',{size:'full'})
} );
  1. Before closing the dialog, destroy the window manager:
OO.ui.getWindowManager().destroy()

Observe that the page is now not scrollable.

The real-world test case is that when this patch is applied: https://gerrit.wikimedia.org/r/c/mediawiki/extensions/VisualEditor/+/763604, publishing change in VE on iOS results in the page being unscrollable, as the window manager is torn down while the save dialog is still open.

Event Timeline

Change 791465 had a related patch set uploaded (by Esanders; author: Esanders):

[oojs/ui@master] WindowManager: Simplify teardown

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

Change 791466 had a related patch set uploaded (by Esanders; author: Esanders):

[VisualEditor/VisualEditor@master] WindowManager: Simplify teardown

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

Change 791465 merged by jenkins-bot:

[oojs/ui@master] WindowManager: Simplify teardown

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

Change 791466 merged by jenkins-bot:

[VisualEditor/VisualEditor@master] WindowManager: Simplify teardown

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

Change 791698 had a related patch set uploaded (by Bartosz Dziewoński; author: Bartosz Dziewoński):

[mediawiki/extensions/VisualEditor@master] Update VE core submodule to master (f07b7e2cf)

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

Change 791698 merged by jenkins-bot:

[mediawiki/extensions/VisualEditor@master] Update VE core submodule to master (f07b7e2cf)

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

matmarex moved this task from Incoming to QA on the Editing-team (Kanban Board) board.
matmarex added a project: Editing QA.

@matmarex, would it be correct to assume that this change should be visible on https://en.m.wikipedia.beta.wmflabs.org?
My observations:
Android works as expected: https://photos.app.goo.gl/CtoYKZ9ohSFaB2E2A
The page is not scrollable on iOS: https://photos.app.goo.gl/gpTMUQAzGM3NwCYv9

Let me know if I am not reproducing right..

Sorry, the fix for this scenario isn't on https://en.m.wikipedia.beta.wmflabs.org yet, because the bug had to be fixed in the OOUI library, and we need to make a release and update MediaWiki to use it. This should happen probably next week.

We've made a separate fix for the "real-world test case" by manually backporting the fix in VisualEditor (in order to unblock T219420 without doing the OOUI release thing), but that only applies to dialogs in VisualEditor and not anything else.

Sorry, I didn't read the task description when moving this to QA. This is blocked for now, I'll update it when everything is ready.

Change 813630 had a related patch set uploaded (by Jforrester; author: Jforrester):

[mediawiki/core@master] Update OOUI to v0.44.1

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

Change 813630 merged by jenkins-bot:

[mediawiki/core@master] Update OOUI to v0.44.1

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

@matmarex, would it be correct to assume that this change should be visible on https://en.m.wikipedia.beta.wmflabs.org?
My observations:
Android works as expected: https://photos.app.goo.gl/CtoYKZ9ohSFaB2E2A
The page is not scrollable on iOS: https://photos.app.goo.gl/gpTMUQAzGM3NwCYv9

Let me know if I am not reproducing right..

All good now. See https://photos.app.goo.gl/rH6PXvg3ijFvUFsX8