fune/widget
Emilio Cobos Álvarez da7fa43d4a Bug 1809084 - Stop using XUL layout for menu popups. r=desktop-theme-reviewers,dao,dshin
The underlying issue here is an invalidation bug with XUL layout. When a
popup opens, we try to lay it out at full size, then post a reflow
callback to constrain it.

There's an intermediate step there where the popup might remain at full
size, and the constraining operates directly on mRect, which isn't quite
sound and doesn't update the scrollport of descendants.

Make nsMenuPopupFrame inherit from nsBlockFrame instead, doing
potentially two layout passes when constrained.

This fixes the issue at hand, and removes XUL layout from menu popups,
so it's a win-win.

To make reasoning about it a bit easier, factor out a bunch of the XUL
positioning code to be const. The mutation of mRect etc which was going
on otherwise was pretty hard to reason about.

Differential Revision: https://phabricator.services.mozilla.com/D170368
2023-03-16 19:09:14 +00:00
..
android Bug 1659818 - Android window.print Implemented for Nightly r=emilio,m_kato,geckoview-reviewers 2023-03-15 21:23:12 +00:00
cocoa Backed out 6 changesets (bug 1820168) for causing multiple failures CLOSED TREE 2023-03-14 19:53:58 +02:00
crashtests
generic
gtk Bug 1820405 - Ignore bogus enter-leave by default in lg3d/qtile. r=stransky 2023-03-16 14:49:08 +00:00
headless Bug 1736914 - Implement prefers-reduced-transparency media query r=geckoview-reviewers,emilio,jonalmeida,ohall 2023-03-13 21:30:17 +00:00
reftests Bug 1809742 - Remove nativeThemePref annotations. r=dshin 2023-01-13 21:18:08 +00:00
tests Bug 1809084 - Stop using XUL layout for menu popups. r=desktop-theme-reviewers,dao,dshin 2023-03-16 19:09:14 +00:00
uikit Bug 1815404 - Remove refcounting from gfxContext. r=gfx-reviewers,lsalzman 2023-02-21 07:28:24 +00:00
windows Bug 1820580 - Make toolkit/mozapps/defaultagent buildable outside of a unified build environment r=andi 2023-03-15 07:30:39 +00:00
x11
BasicEvents.h Bug 1807812 - Remove WidgetEventTime::mTime, r=masayuki,geckoview-reviewers,m_kato 2023-01-02 12:31:40 +00:00
ColorScheme.h
CommandList.h
components.conf
CompositorWidget.cpp Bug 1811834 - Clean up nsWidgetInitData. r=cmartin,geckoview-reviewers,calu 2023-01-23 23:58:41 +00:00
CompositorWidget.h
ContentCache.cpp Bug 1810620 - Make ContentCacheInChild::CacheTextRects check mSelection.isSome() at logging it r=m_kato 2023-01-18 01:32:55 +00:00
ContentCache.h Bug 1775062 - Implement ipdl reads without needing default ctors. r=nika 2023-02-04 11:12:36 +00:00
ContentData.cpp
ContentData.h
ContentEvents.h
DimensionRequest.cpp Bug 1786048 - Part 3: Merge nsIEmbeddingSiteWindow into nsIBaseWindow. r=emilio 2022-12-15 23:13:00 +00:00
DimensionRequest.h Bug 1786048 - Part 3: Merge nsIEmbeddingSiteWindow into nsIBaseWindow. r=emilio 2022-12-15 23:13:00 +00:00
EventClassList.h
EventForwards.h
EventMessageList.h Bug 1689631 - Renamed onabsolutedeviceorientation to ondeviceorientationabsolute. r=smaug 2022-12-22 19:12:41 +00:00
FontRange.h
GfxDriverInfo.cpp Bug 1805939 - Have a central source of truth for desktop environment detection. r=stransky,jld 2023-01-20 11:26:11 +00:00
GfxDriverInfo.h Bug 1805939 - Have a central source of truth for desktop environment detection. r=stransky,jld 2023-01-20 11:26:11 +00:00
GfxInfoBase.cpp Bug 1819133 - Don't error on unrecognized blocklist features. r=aosmond 2023-02-28 22:02:32 +00:00
GfxInfoBase.h Bug 1805939 - Have a central source of truth for desktop environment detection. r=stransky,jld 2023-01-20 11:26:11 +00:00
GfxInfoCollector.cpp
GfxInfoCollector.h
IconLoader.cpp Bug 1771867 - Early Hints Phase 2 - Part 7: Pass early hint preload to image preloader r=necko-reviewers,valentin 2022-12-02 16:15:55 +00:00
IconLoader.h
IMEData.cpp
IMEData.h
InitData.h Bug 1798697 - Use outside rather than closest pixels for popup sizes, and don't clamp translucent popups. r=tnikkel 2023-01-24 11:24:48 +00:00
InProcessCompositorWidget.cpp
InProcessCompositorWidget.h
InputData.cpp Bug 1807812 - Remove WidgetEventTime::mTime, r=masayuki,geckoview-reviewers,m_kato 2023-01-02 12:31:40 +00:00
InputData.h Bug 1775062 - Implement ipdl reads without needing default ctors. r=nika 2023-02-04 11:12:36 +00:00
LookAndFeel.h Bug 1736914 - Implement prefers-reduced-transparency media query r=geckoview-reviewers,emilio,jonalmeida,ohall 2023-03-13 21:30:17 +00:00
LookAndFeelTypes.ipdlh
LSBUtils.cpp
LSBUtils.h
MediaKeysEventSourceFactory.h
MiscEvents.h
MouseEvents.h Bug 1775062 - Implement ipdl reads without needing default ctors. r=nika 2023-02-04 11:12:36 +00:00
moz.build Bug 1811834 - Clean up nsWidgetInitData. r=cmartin,geckoview-reviewers,calu 2023-01-23 23:58:41 +00:00
NativeKeyBindingsType.h
NativeKeyToDOMCodeName.h
NativeKeyToDOMKeyName.h
NativeMenu.h Bug 1763990: Don't order popups in front of native context menus on macOS. r=mstange 2023-02-02 22:13:54 +00:00
NativeMenuSupport.h
nsAppShellSingleton.h
nsAutoRollup.cpp
nsAutoRollup.h
nsBaseAppShell.cpp Bug 1804295, Add GeckoTasksBurst, r=emilio 2022-12-27 13:12:22 +00:00
nsBaseAppShell.h Bug 1804295, Add GeckoTasksBurst, r=emilio 2022-12-27 13:12:22 +00:00
nsBaseClipboard.cpp Bug 1812543 - [Cocoa] Check cached transferable properly in nsClipboard::HasDataMatchingFlavors; r=spohl 2023-01-26 20:04:30 +00:00
nsBaseClipboard.h Bug 1812543 - [Cocoa] Check cached transferable properly in nsClipboard::HasDataMatchingFlavors; r=spohl 2023-01-26 20:04:30 +00:00
nsBaseDragService.cpp Bug 1820972 - Make nsBaseDragService::FireDragEventAtSource update mSourceNode if it's disconnected while HTMLEditor deletes selection caused by a drag operation r=edgar 2023-03-16 06:37:18 +00:00
nsBaseDragService.h Bug 1809122 - Track top-level window context in DragSession; r=smaug 2023-02-13 18:44:04 +00:00
nsBaseFilePicker.cpp Bug 1816740 [5/6] - convert nsIFilePicker::capture* to a proper enum r=ipc-reviewers,karlt,mstange,handyman,nika 2023-02-22 21:05:24 +00:00
nsBaseFilePicker.h Bug 1816740 [5/6] - convert nsIFilePicker::capture* to a proper enum r=ipc-reviewers,karlt,mstange,handyman,nika 2023-02-22 21:05:24 +00:00
nsBaseWidget.cpp Bug 1784772 - Queue SwipeEventQueue only if we don't know whether the pan event wasn't consumed by APZ. r=botond 2023-03-14 21:01:01 +00:00
nsBaseWidget.h Bug 1747722 - Allow changing window class hints using attributes. r=emilio,stransky 2023-03-02 16:22:05 +00:00
nsClipboardHelper.cpp Bug 1776879, replace text/unicode for clipboard and drag and drop and use text/plain directly, r=edgar,mak,stransky,geckoview-reviewers,extension-reviewers,zombie,m_kato 2023-02-01 23:30:55 +00:00
nsClipboardHelper.h
nsClipboardProxy.cpp Bug 1817166 - Remove unused argument from nsContentUtils::TransferableToIPCTransferable; r=nika 2023-02-16 16:56:53 +00:00
nsClipboardProxy.h
nsColorPickerProxy.cpp Bug 1816740 [6/6] - remove ManualDealloc from ColorPicker and FilePicker r=ipc-reviewers,nika 2023-02-22 21:05:25 +00:00
nsColorPickerProxy.h
nsContentProcessWidgetFactory.h
nsCUPSShim.cpp
nsCUPSShim.h
nsDeviceContextSpecProxy.cpp Bug 1785046 - Part 3: Let nsIDeviceContextSpec::EndDocument & nsDeviceContext::EndDocument return MozPromise. r=nika,emilio,geckoview-reviewers,m_kato 2022-12-19 15:42:48 +00:00
nsDeviceContextSpecProxy.h Bug 1785046 - Part 3: Let nsIDeviceContextSpec::EndDocument & nsDeviceContext::EndDocument return MozPromise. r=nika,emilio,geckoview-reviewers,m_kato 2022-12-19 15:42:48 +00:00
nsDragServiceProxy.cpp Bug 1817166 - Remove unused argument from nsContentUtils::TransferableToIPCTransferable; r=nika 2023-02-16 16:56:53 +00:00
nsDragServiceProxy.h
nsFilePickerProxy.cpp Bug 1816740 [6/6] - remove ManualDealloc from ColorPicker and FilePicker r=ipc-reviewers,nika 2023-02-22 21:05:25 +00:00
nsFilePickerProxy.h Bug 1816740 [5/6] - convert nsIFilePicker::capture* to a proper enum r=ipc-reviewers,karlt,mstange,handyman,nika 2023-02-22 21:05:24 +00:00
nsGUIEventIPC.h Bug 1807812 - Remove WidgetEventTime::mTime, r=masayuki,geckoview-reviewers,m_kato 2023-01-02 12:31:40 +00:00
nsHTMLFormatConverter.cpp Bug 1776879, replace text/unicode for clipboard and drag and drop and use text/plain directly, r=edgar,mak,stransky,geckoview-reviewers,extension-reviewers,zombie,m_kato 2023-02-01 23:30:55 +00:00
nsHTMLFormatConverter.h
nsIApplicationChooser.idl Bug 1802288 - remove trailing whitespaces in idl/webidl files r=credential-management-reviewers,webidl,smaug,sgalich 2022-12-28 09:52:44 +00:00
nsIAppShell.idl Bug 1804295, Add GeckoTasksBurst, r=emilio 2022-12-27 13:12:22 +00:00
nsIBaseWindow.cpp
nsIBaseWindow.idl Bug 1786048 - Part 3: Merge nsIEmbeddingSiteWindow into nsIBaseWindow. r=emilio 2022-12-15 23:13:00 +00:00
nsIBidiKeyboard.idl Bug 1802288 - remove trailing whitespaces in idl/webidl files r=credential-management-reviewers,webidl,smaug,sgalich 2022-12-28 09:52:44 +00:00
nsIClipboard.idl Bug 1796548 - Introduce a generic method to check clipboard capabilities in nsIClipboard; r=geckoview-reviewers,nika,m_kato 2023-01-16 19:50:17 +00:00
nsIClipboardHelper.idl
nsIClipboardOwner.idl
nsIColorPicker.idl Bug 960984 - Implement the list attribute for <input type=color>. r=emilio,geckoview-reviewers,m_kato 2022-12-14 18:17:59 +00:00
nsIDeviceContextSpec.cpp Bug 1785046 - Part 4: Use async move on printing to file on Windows. r=nika,emilio 2022-12-19 15:42:49 +00:00
nsIDeviceContextSpec.h Bug 1785046 - Part 4: Use async move on printing to file on Windows. r=nika,emilio 2022-12-19 15:42:49 +00:00
nsIDisplayInfo.idl
nsIDragService.idl Bug 1820972 - Make nsBaseDragService::FireDragEventAtSource update mSourceNode if it's disconnected while HTMLEditor deletes selection caused by a drag operation r=edgar 2023-03-16 06:37:18 +00:00
nsIDragSession.idl Bug 1809122 - Track top-level window context in DragSession; r=smaug 2023-02-13 18:44:04 +00:00
nsIFilePicker.idl Bug 1818500 - Fix serialization of nsIFilePicker::Mode. r=ipc-reviewers,mccr8 a=RyanVM 2023-02-23 14:33:57 +00:00
nsIFormatConverter.idl
nsIGfxInfo.idl Bug 1812698 - Expose desktopEnvironment via nsIXULRuntime rather than nsIGfxInfo. r=stransky 2023-02-01 13:14:50 +00:00
nsIGfxInfoDebug.idl
nsIGtkTaskbarProgress.idl
nsIJumpListBuilder.idl
nsIJumpListItem.idl Bug 1802288 - remove trailing whitespaces in idl/webidl files r=credential-management-reviewers,webidl,smaug,sgalich 2022-12-28 09:52:44 +00:00
nsIMacDockSupport.idl
nsIMacFinderProgress.idl
nsIMacSharingService.idl
nsIMacUserActivityUpdater.idl
nsIMacWebAppUtils.idl
nsIPaper.idl
nsIPaperMargin.idl
nsIPrintDialogService.idl
nsIPrinter.idl
nsIPrinterList.idl
nsIPrintSettings.idl Bug 1793220 - Use at-page size rule as paper size when printing to PDF r=dholbert,AlaskanEmily 2023-02-27 20:22:18 +00:00
nsIPrintSettingsService.idl Bug 1755153 p2 - Prevent saving print settings to prefs if print.save_print_settings=false. r=emilio 2022-10-30 10:32:28 +00:00
nsIPrintSettingsWin.idl
nsIRollupListener.h Bug 1811486 - Don't animate popups rolled-up on minimized windows. r=stransky 2023-01-25 11:37:46 +00:00
nsIScreen.idl Bug 1422237 - Forward-declare enum ScreenColorGamut in XPIDL r=emilio 2022-12-27 02:15:19 +00:00
nsIScreenManager.idl
nsISharePicker.idl
nsISound.idl Bug 1797840: Replace stray tab characters with spaces in IDL files throughout the tree. r=mccr8,necko-reviewers,credential-management-reviewers,smaug,sgalich,valentin 2022-10-28 18:08:17 +00:00
nsIStandaloneNativeMenu.idl
nsISystemStatusBar.idl
nsITaskbarOverlayIconController.idl
nsITaskbarPreview.idl Bug 1802288 - remove trailing whitespaces in idl/webidl files r=credential-management-reviewers,webidl,smaug,sgalich 2022-12-28 09:52:44 +00:00
nsITaskbarPreviewButton.idl Bug 1802288 - remove trailing whitespaces in idl/webidl files r=credential-management-reviewers,webidl,smaug,sgalich 2022-12-28 09:52:44 +00:00
nsITaskbarPreviewController.idl
nsITaskbarProgress.idl
nsITaskbarTabPreview.idl Bug 1802288 - remove trailing whitespaces in idl/webidl files r=credential-management-reviewers,webidl,smaug,sgalich 2022-12-28 09:52:44 +00:00
nsITaskbarWindowPreview.idl Bug 1802288 - remove trailing whitespaces in idl/webidl files r=credential-management-reviewers,webidl,smaug,sgalich 2022-12-28 09:52:44 +00:00
nsITouchBarHelper.idl
nsITouchBarInput.idl
nsITouchBarUpdater.idl
nsITransferable.idl Bug 1776879, replace text/unicode for clipboard and drag and drop and use text/plain directly, r=edgar,mak,stransky,geckoview-reviewers,extension-reviewers,zombie,m_kato 2023-02-01 23:30:55 +00:00
nsIUserIdleService.idl
nsIUserIdleServiceInternal.idl Bug 1802288 - remove trailing whitespaces in idl/webidl files r=credential-management-reviewers,webidl,smaug,sgalich 2022-12-28 09:52:44 +00:00
nsIWidget.h Bug 1747722 - Allow changing window class hints using attributes. r=emilio,stransky 2023-03-02 16:22:05 +00:00
nsIWidgetListener.cpp
nsIWidgetListener.h
nsIWindowsUIUtils.idl
nsIWinTaskbar.idl Bug 1810487 - Remove unused JS-exposed nsIWinTaskbar.prepareFullScreen. r=rkraesig 2023-01-16 17:30:08 +00:00
nsNativeTheme.cpp Bug 1805414 - Remove nsMenuFrame and nsMenuParent. r=smaug,Jamie,desktop-theme-reviewers,settings-reviewers,dao 2023-01-04 19:01:13 +00:00
nsNativeTheme.h
nsPaper.cpp
nsPaper.h
nsPaperMargin.cpp
nsPaperMargin.h
nsPrimitiveHelpers.cpp Bug 1776879, replace text/unicode for clipboard and drag and drop and use text/plain directly, r=edgar,mak,stransky,geckoview-reviewers,extension-reviewers,zombie,m_kato 2023-02-01 23:30:55 +00:00
nsPrimitiveHelpers.h Bug 1776879, replace text/unicode for clipboard and drag and drop and use text/plain directly, r=edgar,mak,stransky,geckoview-reviewers,extension-reviewers,zombie,m_kato 2023-02-01 23:30:55 +00:00
nsPrinterBase.cpp
nsPrinterBase.h
nsPrinterCUPS.cpp
nsPrinterCUPS.h
nsPrinterListBase.cpp
nsPrinterListBase.h
nsPrinterListCUPS.cpp
nsPrinterListCUPS.h
nsPrintSettingsImpl.cpp Bug 1793220 - Use at-page size rule as paper size when printing to PDF r=dholbert,AlaskanEmily 2023-02-27 20:22:18 +00:00
nsPrintSettingsImpl.h Bug 1793220 - Use at-page size rule as paper size when printing to PDF r=dholbert,AlaskanEmily 2023-02-27 20:22:18 +00:00
nsPrintSettingsService.cpp Bug 1793220 - Use at-page size rule as paper size when printing to PDF r=dholbert,AlaskanEmily 2023-02-27 20:22:18 +00:00
nsPrintSettingsService.h
nsSoundProxy.cpp
nsSoundProxy.h
nsTransferable.cpp
nsTransferable.h
nsUserIdleService.cpp Bug 1768920 - Avoid polling every 5 seconds in nsUserIdleService, r=dthayer,geckoview-reviewers,owlish. 2023-01-16 19:53:33 +00:00
nsUserIdleService.h Bug 1768920 - Avoid polling every 5 seconds in nsUserIdleService, r=dthayer,geckoview-reviewers,owlish. 2023-01-16 19:53:33 +00:00
nsWidgetsCID.h
nsXPLookAndFeel.cpp Bug 1736914 - Implement prefers-reduced-transparency media query r=geckoview-reviewers,emilio,jonalmeida,ohall 2023-03-13 21:30:17 +00:00
nsXPLookAndFeel.h
PrintBackgroundTask.h
PuppetBidiKeyboard.cpp
PuppetBidiKeyboard.h
PuppetWidget.cpp Bug 1811834 - Clean up nsWidgetInitData. r=cmartin,geckoview-reviewers,calu 2023-01-23 23:58:41 +00:00
PuppetWidget.h Bug 1811834 - Clean up nsWidgetInitData. r=cmartin,geckoview-reviewers,calu 2023-01-23 23:58:41 +00:00
RemoteLookAndFeel.cpp
RemoteLookAndFeel.h
Screen.cpp Bug 1422237 - Forward-declare enum ScreenColorGamut in XPIDL r=emilio 2022-12-27 02:15:19 +00:00
Screen.h Bug 1744687 - Part 1. Lock orientation backend for Windows Tablet. r=gsvelto 2022-11-24 15:10:15 +00:00
ScreenManager.cpp Bug 1812938 - Part 1. GetWidgetScreen returns Screen instead of nsIScreen. r=emilio,geckoview-reviewers,owlish 2023-02-06 04:51:26 +00:00
ScreenManager.h Bug 1812938 - Part 1. GetWidgetScreen returns Screen instead of nsIScreen. r=emilio,geckoview-reviewers,owlish 2023-02-06 04:51:26 +00:00
ScrollbarDrawing.cpp Bug 1812868 - Tweak scrollbar scaling set-up. r=mstange 2023-02-20 00:01:12 +01:00
ScrollbarDrawing.h Bug 1813046 - Simplify scrollbar sizing code. r=spohl 2023-01-28 21:35:51 +00:00
ScrollbarDrawingAndroid.cpp Bug 1813046 - Simplify scrollbar sizing code. r=spohl 2023-01-28 21:35:51 +00:00
ScrollbarDrawingAndroid.h Bug 1813046 - Simplify scrollbar sizing code. r=spohl 2023-01-28 21:35:51 +00:00
ScrollbarDrawingCocoa.cpp Bug 1813046 - Simplify scrollbar sizing code. r=spohl 2023-01-28 21:35:51 +00:00
ScrollbarDrawingCocoa.h Bug 1813046 - Simplify scrollbar sizing code. r=spohl 2023-01-28 21:35:51 +00:00
ScrollbarDrawingGTK.cpp Bug 1813046 - Simplify scrollbar sizing code. r=spohl 2023-01-28 21:35:51 +00:00
ScrollbarDrawingGTK.h
ScrollbarDrawingWin.cpp Bug 1813046 - Simplify scrollbar sizing code. r=spohl 2023-01-28 21:35:51 +00:00
ScrollbarDrawingWin.h
ScrollbarDrawingWin11.cpp Bug 1813046 - Simplify scrollbar sizing code. r=spohl 2023-01-28 21:35:51 +00:00
ScrollbarDrawingWin11.h Bug 1813046 - Simplify scrollbar sizing code. r=spohl 2023-01-28 21:35:51 +00:00
SharedWidgetUtils.cpp
SwipeTracker.cpp Bug 1799563 - Remove browser.swipe.navigation-icon-move-distance pref. r=tnikkel 2023-01-20 00:05:25 +00:00
SwipeTracker.h
SystemTimeConverter.h
TextEventDispatcher.cpp Bug 1807812 - Remove WidgetEventTime::mTime, r=masayuki,geckoview-reviewers,m_kato 2023-01-02 12:31:40 +00:00
TextEventDispatcher.h
TextEventDispatcherListener.h
TextEvents.h Bug 1775062 - Implement ipdl reads without needing default ctors. r=nika 2023-02-04 11:12:36 +00:00
TextRange.h
TextRecognition.cpp
TextRecognition.h
Theme.cpp Bug 1813046 - Simplify scrollbar sizing code. r=spohl 2023-01-28 21:35:51 +00:00
Theme.h Bug 1813046 - Simplify scrollbar sizing code. r=spohl 2023-01-28 21:35:51 +00:00
ThemeChangeKind.h
ThemeCocoa.cpp Bug 1813046 - Simplify scrollbar sizing code. r=spohl 2023-01-28 21:35:51 +00:00
ThemeCocoa.h Bug 1802314 - Use non-native tooltips in the cocoa non-native theme too. r=spohl 2022-12-07 18:47:53 +00:00
ThemeColors.cpp
ThemeColors.h
ThemeDrawing.cpp
ThemeDrawing.h
TouchEvents.h Bug 1775062 - Implement ipdl reads without needing default ctors. r=nika 2023-02-04 11:12:36 +00:00
TouchResampler.cpp
TouchResampler.h
VsyncDispatcher.cpp Bug 1797814 - Allow setting a maximum frame rate frequency in Hz, r=mstange. 2022-11-07 19:30:49 +00:00
VsyncDispatcher.h
WidgetEventImpl.cpp Bug 1812329 - Move accesskey out of nsMenubarListener. r=smaug 2023-02-07 16:29:40 +00:00
WidgetMessageUtils.h Bug 1811834 - Clean up nsWidgetInitData. r=cmartin,geckoview-reviewers,calu 2023-01-23 23:58:41 +00:00
WidgetTraceEvent.h
WidgetUtils.cpp
WidgetUtils.h
WindowButtonType.h Bug 1801956 - Move titlebar button handling out of nsBoxFrame. r=tnikkel 2022-11-23 09:31:58 +00:00
WindowOcclusionState.h