63d823a44bc180afc103d48c29ea621a5a2c90f8
The root of the problem is that nsMenuPopupFrame::GenerateFrames calls into frame construction without making sure that styles are clean. So it was pretty much working by chance, sorta. I was going to fix this by adding the necessary flushes before calling GenerateFrames, but on closer inspection, the front-end has effectively already implemented this optimization by only generating the relevant DOM on popupShowing: https://searchfox.org/mozilla-central/rev/a11b63915bd7810a03635d733123448ab5bfcad3/toolkit/content/widgets/menupopup.js#87-91 And for menulists on creation: https://searchfox.org/mozilla-central/rev/a11b63915bd7810a03635d733123448ab5bfcad3/toolkit/content/widgets/menupopup.js#151 After bug 1714846 we even destroy frames as needed, for panels. So I think all of this complexity is unwarranted, and if we need some of it we should implement it in the front-end like bug 1714846 did, and I'd rather do this than flushing styles and so on. There's one tweak I had to do to an nsPlaceholderFrame assertion. The reason is that now the nsMenuPopupFrames do get their NS_FRAME_FIRST_REFLOW bit cleared here: https://searchfox.org/mozilla-central/rev/bd25b1ca76dd5d323ffc69557f6cf759ba76ba23/layout/xul/nsMenuPopupFrame.cpp#557 Because the IsLeaf() condition here is no longer true: https://searchfox.org/mozilla-central/rev/bd25b1ca76dd5d323ffc69557f6cf759ba76ba23/layout/xul/nsMenuPopupFrame.cpp#532 It doesn't change anything though, because this condition never holded for popups consistently. Differential Revision: https://phabricator.services.mozilla.com/D134331
Bug
1743659 - Part 1: Update Gecko's L10nRegistry to use the new l10nregistry-rs API r=zbraniecki,dminor,eemeli,fluent-reviewers,webidl,smaug?,eemeli?,zbraniecki
…
…
…
…
Bug
1743659 - Part 1: Update Gecko's L10nRegistry to use the new l10nregistry-rs API r=zbraniecki,dminor,eemeli,fluent-reviewers,webidl,smaug?,eemeli?,zbraniecki
…
…
…
An explanation of the Firefox Source Code Directory Structure and links to
project pages with documentation can be found at:
https://firefox-source-docs.mozilla.org/contributing/directory_structure.html
For information on how to build Firefox from the source code and create the patch see:
https://firefox-source-docs.mozilla.org/contributing/contribution_quickref.html
If you have a question about developing Firefox, and can't find the solution
on https://firefox-source-docs.mozilla.org/, you can try asking your question on Matrix at chat.mozilla.org in `Introduction` (https://chat.mozilla.org/#/room/#introduction:mozilla.org) channel.
Nightly development builds can be downloaded from:
https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/
- or -
https://www.mozilla.org/firefox/channel/desktop/#nightly
Keep in mind that nightly builds, which are used by Firefox developers for
testing, may be buggy.
Description
Languages
JavaScript
32.6%
C++
25.1%
HTML
20.9%
C
10.6%
Python
2.8%
Other
7.6%