Page MenuHomePhabricator

Opening an OOUI dialog from within a dialog deadlocks the entire screen
Closed, ResolvedPublic2 Estimated Story PointsBUG REPORT

Description

Steps to reproduce:

  • Start VisualEditor.
  • Add or edit a simple Maps (Kartographer) <mapframe> element.
  • Go to the options tab.
  • Click the ••• button next to the language code input. A popup (within the maps popup) to select a language opens.
  • Now the entire screen is blocked.

It appears like this is the same issue as in T313690: Dialog buttons not working after required template param warning (due to 'inert' attribute not being cleared). I can find a whole bunch of inert attributes in the HTML. When I manually remove them all it works again.

I wonder how many other places in the hundreds of codebases we maintain have the same problem? Should we revert the patch that added these inert just to be sure? Marking this as a OOUI problem because of this.

Event Timeline

Change 824678 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[VisualEditor/VisualEditor@master] ve.ui.LanguageInputWidget: Fix dialog becoming inert

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

thiemowmde set the point value for this task to 2.

I found the same code as in https://gerrit.wikimedia.org/r/816798 and applied an identical change to the LanguageInputWidget. Unfortunately this one sits in the ve lib where our team can't +2 patches.

Luckily it looks like these are really the only two places in all code we have that do this: https://codesearch.wmcloud.org/search/?q=new%20ve.ui.WindowManager&files=%5C.js%24

Change 824678 merged by jenkins-bot:

[VisualEditor/VisualEditor@master] ve.ui.LanguageInputWidget: Fix dialog becoming inert

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

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

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

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

Change 824761 merged by jenkins-bot:

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

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

Thanks @thiemowmde.

Luckily it looks like these are really the only two places in all code we have that do this: https://codesearch.wmcloud.org/search/?q=new%20ve.ui.WindowManager&files=%5C.js%24

I think there might be more, ve.ui.WindowManager is a subclass of OO.ui.WindowManager, which is used more widely and which (I think) would be affected by the same issue:

https://codesearch.wmcloud.org/search/?q=new%20OO.ui.WindowManager&files=%5C.js%24

At a glance, most uses immediately append to body, and would be fine. GrowthExperiments does some weird stuff, but I tested in production and their weird stuff works (at least in the one case I tried). But I haven't audited them all carefully…

I'm afraid I can't be of much help here. But maybe it's worth having a look at these as well: https://codesearch.wmcloud.org/search/?q=body%5CW*append.*overlay&files=%5C.js%24