gecko-dev/widget
Robert Mader 437336e8de Bug 1708416 - Implement n-buffering for the Wayland software backend, r=stransky
In order to fully comply with the spec and work on all compositors.
This is heavily inspired by `NativeLayerCA`:
 - Buffer are managed within a pool, similar to `SurfacePool`. This
   makes sure there's always a buffer available, even if the compositor
   holds buffers for longer than usually expected. One difference is
   that buffers are not shared between windows though, reducing
   complexity.
 - Partial damage is handled by blitting from the previous buffer,
   likely currently held by the Wayland compositor. While the spec is
   not completely clear whether this is legal, it strongly suggests it
   is - and other Wayland developers suggested it should be.
   This is almost identical to `NativeLayerCA::HandlePartialUpdate`,
   with a small optimization for the common case of double buffering,
   in witch case use a "damage history", inspired by the EGL partial
   damage support. As single or double buffering are by far the most
   common cases for shm-buffers, we limit this to double buffering to
   avoid complexity.

Changes compared to the existing `WindowSurfaceWayland` include:
 - reduced complexity:
   - less code
   - no extra frame callbacks, avoiding extra steps like D117911
 - no compositor specific modes - this solution should always produce
   fully correct output with minimal overhead.

Note: a previous version of this patch only worked for SW-WR but not
Basic and thus did not replace `WindowSurfaceWayland`. Now this patch
supports both, making it possible to fully replace `WindowSurfaceWayland`

Differential Revision: https://phabricator.services.mozilla.com/D118025
2021-06-17 13:19:14 +00:00
..
android Bug 1716971 - Enable webrender on Android on NVIDIA Tegra GPUs. r=jrmuizel 2021-06-17 13:07:50 +00:00
cocoa Bug 1519636 - Reformat recent changes to the Google coding style. r=necko-reviewers,emilio 2021-06-17 11:00:22 +00:00
crashtests
generic
gtk Bug 1708416 - Implement n-buffering for the Wayland software backend, r=stransky 2021-06-17 13:19:14 +00:00
headless Bug 1710643 - Remove support for unused gtk infobar widget and colors. r=stransky 2021-05-12 19:13:21 +00:00
reftests Bug 1716135 - Annotate some fuzz for macOS+webrender+widget.non-native-theme.webrender=false. 2021-06-14 13:40:48 +00:00
tests Bug 1700781 - Skip failing mochitest-plain tests with fission + xorigin, r=jmaher 2021-06-15 18:24:18 +00:00
uikit Bug 1709647 - Use NS_SAME_AS_FOREGROUND_COLOR instead of NS_DONT_CHANGE_COLOR. r=jfkthame 2021-05-06 09:57:19 +00:00
windows Backed out 2 changesets (bug 1701770) for causing failures in browser_checkdllblockliststate.js CLOSED TREE 2021-06-15 04:09:49 +03:00
x11
BasicEvents.h Bug 1689317 - Clipboard events should be composed. r=smaug 2021-01-29 13:30:40 +00:00
CommandList.h Bug 1357365 - part 3: Make TypeInState::OnSelectionChange() stop keeping link style if caret is positioned at edge of a link element and not moved in the link r=m_kato,edgar 2021-01-13 01:55:29 +00:00
CompositorWidget.cpp Bug 1678892 - Pass dirty and opaque regions to layers compositor. r=sotaro 2021-03-23 06:36:39 +00:00
CompositorWidget.h Bug 1709606 - Rename CompositorWidget::AsX11() to CompositorWidget->AsGTK(), r=stransky,nical 2021-05-07 12:31:28 +00:00
ContentCache.cpp Bug 1683226 - part 4: Make stop ContentCache check whether a plugin has focus or not r=m_kato 2020-12-21 05:59:57 +00:00
ContentCache.h
ContentEvents.h
EventClassList.h Bug 1683226 - part 16: Get rid of WidgetPluginEvent r=smaug 2020-12-29 21:19:45 +00:00
EventForwards.h Bug 1710317 - Part 1: Add MouseButton::eEraser r=aklotz,edgar 2021-05-31 13:39:18 +00:00
EventMessageList.h Bug 1520983 - part 1: Add new content command event for inserting text r=smaug 2021-05-18 06:30:35 +00:00
FontRange.h
GfxDriverInfo.cpp Bug 1715560 - Remove low powered NVIDIA blocklist rule on Windows. r=jrmuizel 2021-06-09 15:01:32 +00:00
GfxDriverInfo.h Bug 1715560 - Remove low powered NVIDIA blocklist rule on Windows. r=jrmuizel 2021-06-09 15:01:32 +00:00
GfxInfoBase.cpp Bug 1713528 - Change 'else if' after return to 'if'. r=aosmond 2021-06-09 07:23:39 +00:00
GfxInfoBase.h Bug 1698732 - Change reftest-content to get Azure info without Win32k APIs r=bas,emilio 2021-04-27 15:17:12 +00:00
GfxInfoCollector.cpp
GfxInfoCollector.h
IconLoader.cpp Bug 1691861 - Remove unused mContentType fields. r=mconley 2021-02-12 00:32:06 +00:00
IconLoader.h Bug 1691861 - Remove unused mContentType fields. r=mconley 2021-02-12 00:32:06 +00:00
IMEData.cpp Bug 1683226 - part 11: Get rid of IMEEnabled::Plugin r=m_kato 2020-12-21 08:26:24 +00:00
IMEData.h Bug 1714884 - Replace custom IME Rect struct with LayoutDeviceIntRect. r=masayuki 2021-06-07 01:01:09 +00:00
InProcessCompositorWidget.cpp Bug 1674142: Add additional checks to find a crash in InProcessCompositorWidget::PreRender. r=jrmuizel 2021-03-10 00:45:49 +00:00
InProcessCompositorWidget.h Bug 1674142: Add additional checks to find a crash in InProcessCompositorWidget::PreRender. r=jrmuizel 2021-03-10 00:45:49 +00:00
InputData.cpp Bug 1710317 - Part 2: Add mButton[s] to WidgetTouchEvent r=aklotz,edgar 2021-05-31 13:39:18 +00:00
InputData.h Bug 1710317 - Part 2: Add mButton[s] to WidgetTouchEvent r=aklotz,edgar 2021-05-31 13:39:18 +00:00
LookAndFeel.h Bug 1715748 - Expose text selection foreground / background colors to chrome code. r=jwatt 2021-06-14 15:01:26 +00:00
LookAndFeelTypes.ipdlh Bug 1702765 - Plumb ColorScheme through nsXPLookAndFeel. r=mstange 2021-04-02 22:17:55 +00:00
LSBUtils.cpp
LSBUtils.h
MediaKeysEventSourceFactory.h
MiscEvents.h Bug 1520983 - part 1: Add new content command event for inserting text r=smaug 2021-05-18 06:30:35 +00:00
MouseEvents.h Bug 1708829 - Expose WheelEvent.wheelDelta{,X,Y} for compat with other engines. r=masayuki 2021-05-14 15:17:33 +00:00
moz.build Bug 1709606 - Move GfxInfoX11 into gtk and remove X11 from the name, r=stransky 2021-05-07 12:31:27 +00:00
NativeKeyToDOMCodeName.h
NativeKeyToDOMKeyName.h
NativeMenu.h Bug 1705120 - Add OnNativeMenuWillActivateItem observer method for NativeMenu::Observer and call it at the right times. r=harry 2021-05-07 17:00:21 +00:00
nsAppShellSingleton.h
nsAutoRollup.cpp
nsAutoRollup.h
nsBaseAppShell.cpp
nsBaseAppShell.h
nsBaseClipboard.cpp
nsBaseClipboard.h
nsBaseDragService.cpp Bug 941356 - Fix start offset of transformed drag images. r=botond 2021-03-04 10:56:22 +00:00
nsBaseDragService.h
nsBaseFilePicker.cpp Bug 1686616 - make StringBundle use Components instead of Services. r=kmag 2021-02-18 13:26:32 +00:00
nsBaseFilePicker.h
nsBaseScreen.cpp
nsBaseScreen.h
nsBaseWidget.cpp Bug 1706420 - Part 1: Add mInputSource to WidgetTouchEvent r=aklotz,edgar 2021-05-07 18:01:27 +00:00
nsBaseWidget.h Bug 1710533 - Apply the widget size constraints to newBounds r=mstange,gfx-reviewers 2021-05-13 09:34:26 +00:00
nsClipboardHelper.cpp
nsClipboardHelper.h
nsClipboardProxy.cpp
nsClipboardProxy.h
nsColorPickerProxy.cpp
nsColorPickerProxy.h
nsContentProcessWidgetFactory.cpp
nsCUPSShim.cpp Bug 1701019 - Add support for cups 1.6+ to the printing code. r=jwatt 2021-03-29 10:08:44 +00:00
nsCUPSShim.h Bug 1712812 - Remove unused CUPS functions. r=emilio 2021-05-25 23:52:26 +00:00
nsDeviceContextSpecProxy.cpp Bug 1699837 - Make sure that remote iframes honor print settings. r=mattwoodrow 2021-06-13 09:16:53 +00:00
nsDeviceContextSpecProxy.h Bug 1699837 - Make sure that remote iframes honor print settings. r=mattwoodrow 2021-06-13 09:16:53 +00:00
nsDragServiceProxy.cpp
nsDragServiceProxy.h
nsFilePickerProxy.cpp
nsFilePickerProxy.h
nsGUIEventIPC.h Bug 1714884 - Replace custom IME Rect struct with LayoutDeviceIntRect. r=masayuki 2021-06-07 01:01:09 +00:00
nsHTMLFormatConverter.cpp
nsHTMLFormatConverter.h
nsIApplicationChooser.idl
nsIAppShell.idl
nsIBaseWindow.idl Bug 1706316 - Part 2: Remove nsIBaseWindow::setFocus; r=hsivonen 2021-05-10 20:05:12 +00:00
nsIBidiKeyboard.idl
nsIClipboard.idl
nsIClipboardHelper.idl
nsIClipboardOwner.idl
nsIColorPicker.idl
nsIDeviceContextSpec.h
nsIDisplayInfo.idl
nsIDragService.idl
nsIDragSession.idl
nsIFilePicker.idl
nsIFormatConverter.idl
nsIGfxInfo.idl Bug 1698732 - Change reftest-content to get Azure info without Win32k APIs r=bas,emilio 2021-04-27 15:17:12 +00:00
nsIGfxInfoDebug.idl
nsIGtkTaskbarProgress.idl
nsIJumpListBuilder.idl
nsIJumpListItem.idl
nsIMacDockSupport.idl Bug 1709598. Implement API to pin the app to the macOS Dock. r=spohl 2021-05-22 23:45:55 +00:00
nsIMacFinderProgress.idl
nsIMacSharingService.idl
nsIMacWebAppUtils.idl
nsIPaper.idl
nsIPaperMargin.idl
nsIPrintDialogService.h
nsIPrinter.idl
nsIPrinterList.idl
nsIPrintSession.idl
nsIPrintSettings.idl Bug 1692845 - Restore read from global print settings for a few settings, including print_bgcolor and print_bgimages. r=bobowen 2021-02-23 10:52:53 +00:00
nsIPrintSettingsService.idl
nsIPrintSettingsWin.idl
nsIRollupListener.h Bug 1714884 - Have the Rollup method take a strongly-typed int point. r=emilio 2021-06-07 01:01:10 +00:00
nsIScreen.idl
nsIScreenManager.idl
nsISharePicker.idl
nsISound.idl
nsIStandaloneNativeMenu.idl Bug 1699792 - Remove nativeData IDL property and use the NativeNSMenu() C++ method instead. r=harry 2021-03-23 13:40:24 +00:00
nsISystemStatusBar.idl
nsITaskbarOverlayIconController.idl
nsITaskbarPreview.idl
nsITaskbarPreviewButton.idl
nsITaskbarPreviewController.idl
nsITaskbarProgress.idl
nsITaskbarTabPreview.idl
nsITaskbarWindowPreview.idl
nsITouchBarHelper.idl
nsITouchBarInput.idl
nsITouchBarUpdater.idl
nsITransferable.idl Bug 1689827 - Remove length parameter from JS callers of setTransferData. r=smaug 2021-02-01 12:05:12 +00:00
nsIUserIdleService.idl
nsIUserIdleServiceInternal.idl
nsIWidget.h Bug 1715145 - Remove now-unnecessary per-window appearance override. This reverts bug 1700371. r=emilio 2021-06-08 02:01:10 +00:00
nsIWidgetListener.cpp Bug 1699506 - Part 1 - Add a NSTitlebarAccessoryViewController to ToolbarWindow to track when the titlebar is shown in fullscreen. r=mac-reviewers,mstange 2021-03-18 20:20:39 +00:00
nsIWidgetListener.h Bug 1699506 - Part 1 - Add a NSTitlebarAccessoryViewController to ToolbarWindow to track when the titlebar is shown in fullscreen. r=mac-reviewers,mstange 2021-03-18 20:20:39 +00:00
nsIWindowsUIUtils.idl
nsIWinTaskbar.idl
nsNativeBasicTheme.cpp Bug 1711648 - Move LayoutRect to the Box2D representation. r=jrmuizel. 2021-06-11 13:33:10 +00:00
nsNativeBasicTheme.h Bug 1690954 - Draw the menulist arrow button using currentColor rather than a fixed color. r=jfkthame 2021-05-17 12:11:15 +00:00
nsNativeTheme.cpp Bug 1710324 - Tweak dark background detection so that it works for XUL use cases. r=mstange 2021-05-11 13:57:18 +00:00
nsNativeTheme.h Bug 1705605 - Implement accent-color in nsNativeBasicTheme. r=mstange 2021-04-27 10:41:00 +00:00
nsPaper.cpp
nsPaper.h
nsPaperMargin.cpp
nsPaperMargin.h
nsPrimitiveHelpers.cpp
nsPrimitiveHelpers.h
nsPrinterBase.cpp
nsPrinterBase.h
nsPrinterCUPS.cpp Bug 1701019 - Add support for cups 1.6+ to the printing code. r=jwatt 2021-03-29 10:08:44 +00:00
nsPrinterCUPS.h Bug 1705977 - Add more monochrome settings to CUPS. r=emilio 2021-04-19 19:53:02 +00:00
nsPrinterListBase.cpp
nsPrinterListBase.h
nsPrinterListCUPS.cpp Bug 1701019 - Add support for cups 1.6+ to the printing code. r=jwatt 2021-03-29 10:08:44 +00:00
nsPrinterListCUPS.h Bug 1683226 - part 14: Get rid of ComplexTextInputPanel r=m_kato 2020-12-24 02:49:02 +00:00
nsPrintSession.cpp
nsPrintSession.h
nsPrintSettingsImpl.cpp Bug 1689789 part 2 - Use Ceil instead of Truncate the ensure the print surface is large enough for the requested paper size. r=jfkthame 2021-02-06 00:28:29 +00:00
nsPrintSettingsImpl.h
nsPrintSettingsService.cpp Bug 1712130 - Make print.print_via_parent a static pref. r=layout-reviewers,jfkthame 2021-05-20 17:05:33 +00:00
nsPrintSettingsService.h
nsSoundProxy.cpp
nsSoundProxy.h
nsTransferable.cpp
nsTransferable.h
nsUserIdleService.cpp
nsUserIdleService.h
nsWidgetInitData.h Bug 1679087 - Remove ability to create non-Unicode widgets. r=mhowell 2020-12-17 18:21:39 +00:00
nsWidgetsCID.h Bug 1695873 - remove nativemenuservice remnants and fix macOS openedwithkey attribute use, r=mak,mstange 2021-03-04 22:54:23 +00:00
nsXPLookAndFeel.cpp Bug 1713920 - Add some logging for native GTK colors. r=stransky 2021-06-16 14:13:43 +00:00
nsXPLookAndFeel.h Bug 1713920 - Add some logging for native GTK colors. r=stransky 2021-06-16 14:13:43 +00:00
PrintBackgroundTask.h
PuppetBidiKeyboard.cpp
PuppetBidiKeyboard.h
PuppetWidget.cpp Bug 1519636 - Reformat recent changes to the Google coding style. r=necko-reviewers,valentin,sylvestre 2021-05-10 07:15:06 +00:00
PuppetWidget.h Bug 1580595 - [Wayland] Add support for pointer lock via relative-pointer and pointer-constraints r=stransky,rmader,emilio 2021-04-22 14:56:43 +00:00
RemoteLookAndFeel.cpp Bug 1707957 - Restore two lines in RemoteLookAndFeel which shouldn't have been removed. 2021-05-03 02:04:49 +02:00
RemoteLookAndFeel.h Bug 1702765 - Plumb ColorScheme through nsXPLookAndFeel. r=mstange 2021-04-02 22:17:55 +00:00
Screen.cpp
Screen.h
ScreenManager.cpp Bug 1696845 - Use dlsym for gdk_*_display_get_type. r=stransky 2021-03-11 14:32:53 +00:00
ScreenManager.h
ScrollbarDrawingMac.cpp Bug 1703691: Start respecting widget.disable-dark-scrollbar pref on macOS. r=emilio,mac-reviewers,mstange,bradwerth 2021-04-07 23:53:52 +00:00
ScrollbarDrawingMac.h Bug 1519636 - Reformat recent changes to the Google coding style r=andi 2021-03-15 08:45:29 +00:00
SharedWidgetUtils.cpp
SystemTimeConverter.h
TextEventDispatcher.cpp Bug 1704070 - Expose the APZ event status in the return value of DispatchInputEvent(). r=tnikkel 2021-04-14 05:07:56 +00:00
TextEventDispatcher.h Bug 1685491 - part 5: Move the code remapping arrow keys in vertical content to NativeKeyBindings r=smaug,jfkthame 2021-02-02 03:29:31 +00:00
TextEventDispatcherListener.h
TextEvents.h Backed out 3 changesets (bug 1685183) for causing build bustages. CLOSED TREE 2021-04-08 06:48:02 +03:00
TextRange.h
ThemeChangeKind.h
TouchEvents.h Bug 1710317 - Part 2: Add mButton[s] to WidgetTouchEvent r=aklotz,edgar 2021-05-31 13:39:18 +00:00
TouchResampler.cpp
TouchResampler.h
VsyncDispatcher.cpp
VsyncDispatcher.h
WidgetEventImpl.cpp Bug 1708829 - Make sure that delta* getters account for scroll speed override correctly. r=masayuki 2021-05-14 17:44:29 +00:00
WidgetMessageUtils.h Bug 1640186 - Add machinery for sending native pinch gestures from a test, and a test which uses it r=botond 2021-02-19 05:35:40 +00:00
WidgetTraceEvent.h
WidgetUtils.cpp Bug 1701182 - Prepend SNAP-specific prefix to shm path. r=stransky 2021-04-09 14:41:31 +00:00
WidgetUtils.h Bug 1701182 - Prepend SNAP-specific prefix to shm path. r=stransky 2021-04-09 14:41:31 +00:00