Parent windows may lock up if embedded Gecko window is reparented while file dialog is open
Categories
(Core :: Widget: Win32, defect, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr115 | --- | unaffected |
firefox122 | --- | wontfix |
firefox123 | --- | wontfix |
firefox124 | --- | wontfix |
firefox125 | --- | fixed |
People
(Reporter: rkraesig, Assigned: rkraesig)
References
(Regression)
Details
(Keywords: regression)
Attachments
(1 file)
This (mostly-theoretical) concern was discussed in D200742.
With the move to async, it becomes slightly less theoretical: a host program can't guarantee that a Gecko window which it plans to reparent isn't about to open a file dialog. (The Windows file dialog might or might not store the window it disabled so as to correctly reenable that window on exit; but if the file dialog crashes, the question is moot.)
Comment 1•9 months ago
|
||
Set release status flags based on info from the regressing bug 1858225
Updated•9 months ago
|
Updated•9 months ago
|
Assignee | ||
Comment 2•9 months ago
|
||
Eliminate a possible race-condition wherein multiple file-dialogs fight
over disabling the root window, possibly reenabling it early.
Assignee | ||
Comment 3•9 months ago
•
|
||
On reanalysis, my initial patch didn't constitute a solution... and can't really be levered into becoming one.
I don't see a way to solve this, as written, without either a) an unenforceable requirement on the host application to ask before reparenting ancestors of a Gecko window's HWND to new root windows, or b) hooking all window-reparent events in the host application and checking whether they'd affect any Gecko windows which might have file-dialogs open.
I believe the latter is technically feasible, but it's a lot of present-day effort and future maintenance work for a use-case which not only hasn't been requested, but quite plausibly won't be before Microsoft reworks the file-dialog implementation again.
If you have such a use-case, we're willing to revisit this to find a reasonable solution. In the meantime, I plan to land the above patch — which does at least ameliorate this slightly — and then close this bug as RESOLVED WONTFIX.
Comment 4•9 months ago
|
||
Set release status flags based on info from the regressing bug 1858225
Assignee | ||
Updated•9 months ago
|
Comment 6•9 months ago
|
||
bugherder |
Updated•9 months ago
|
Comment 7•9 months ago
|
||
The patch landed in nightly and beta is affected.
:rkraesig, is this bug important enough to require an uplift?
- If yes, please nominate the patch for beta approval.
- If no, please set
status-firefox124
towontfix
.
For more information, please visit BugBot documentation.
Assignee | ||
Comment 8•9 months ago
|
||
No, the patch isn't important enough to uplift.
:diannaS: Setting this to WONTFIX was intentional (see comment 3). Was that causing issues?
Comment 9•9 months ago
|
||
My apologies, makes sense now that i read that comment again. I only changed it when i changed the status/milestone for backtracking purposes.
Ill change it back to a wont fix resolution, but i think the status/milestone should stay as something being introduced in 125.
Description
•