So that:
* It accounts for @page.
* It is correctly serialized and deserialized over IPC.
* It's nicer to use.
Depends on D92004
Differential Revision: https://phabricator.services.mozilla.com/D92005
Popups like autoscroll does not have anchor rectangle while it has set negative
margin to center the popup under cursor. Adding this offset to the final position
leads recursive repositioning of the popup to upper-left position under Wayland.
On the other hand we have to keep the offset for the popups with given anchor rect
like hamburger menus which use the offset to correctly position their pointing arrow.
Differential Revision: https://phabricator.services.mozilla.com/D92045
nsNativeThemeGTK::GetGtkWidgetAndState looks as if it should write to
out-parameters `*aState` and `*aWidgetFlags` any time it returns `true`. But
it is possible to observe that `*aWidgetFlags` is uninitialised when `true` is
returned. This simple patch zero-initialises `*aWidgetFlags` at the start, in
the same way that `*aState` is already zero-initialised at the start.
Differential Revision: https://phabricator.services.mozilla.com/D90697
In this patch, I've tried to abstract out all of the platform-specific parts
of what was the nsIconLoaderService into something generic enough to be used
across multiple platforms. I also renamed it and namespaced it to
mozilla::widget::IconLoader.
Depends on D89788
Differential Revision: https://phabricator.services.mozilla.com/D89972
This basic implementation uses the application icon for the icon that goes
into the system tray for now. A later patch in this series will change that
icon to one defined within the associated <xul:menu> element's styles.
Differential Revision: https://phabricator.services.mozilla.com/D89787
This allows it to be forward-declared (while a nested class cannot be),
such that headers files that use RectCallback by pointer or reference
do not need to include nsLayoutUtils.h.
This avoids including nsLayoutUtils.h in nsRange.h.
Differential Revision: https://phabricator.services.mozilla.com/D91685
Along with a dependent struct DirectDrawInfo.
This allows nsImageRenderer.h and CanvasRenderingContext2D.h to
avoid including nsLayoutUtils.h.
For nsImageRenderer.h in particular, a forward declaration is
not sufficient as nsImageRenderer stores SurfaceFromElementResult
by value.
A couple of method definitions elsewhere are moved out of line
to keep things compiling without including nsLayoutUtils.h in
additional headers.
Differential Revision: https://phabricator.services.mozilla.com/D91684
The previous commit d8315e4ed18d introduced a new telemetry field
in the launcher process ping to collect the assembly pattern of
a target function on detour failure, but most of the crash instances
do not have a value in the field. This means the failure happens
before or after `CreateTrampoline`.
To narrow down the root cause, this patch puts a fine-grained error value
in the "hresult" field instead of the hardcoded ERROR_UNIDENTIFIED_ERROR.
This patch also adds `IsPageAccessible` check before fetching data from
a different process because fetching data from an invalid address hits
`MOZ_RELEASE_ASSERT` in `EnsureLimit`, resulting in crash without sending
the launcher process failure.
Differential Revision: https://phabricator.services.mozilla.com/D91881
CUPS occasionally returns duplicate paper sizes, especially on
older versions of Ubuntu. This patch utilizes a hash set to
skip over any duplciate paper sizes, ensuring that the final list
contains only unique sizes.
These duplicate checks are currently being done on the front end,
and this patch will allow us to remove them.
Differential Revision: https://phabricator.services.mozilla.com/D91215
In this patch, I've tried to abstract out all of the platform-specific parts
of what was the nsIconLoaderService into something generic enough to be used
across multiple platforms. I also renamed it and namespaced it to
mozilla::widget::IconLoader.
Depends on D89788
Differential Revision: https://phabricator.services.mozilla.com/D89972
This basic implementation uses the application icon for the icon that goes
into the system tray for now. A later patch in this series will change that
icon to one defined within the associated <xul:menu> element's styles.
Differential Revision: https://phabricator.services.mozilla.com/D89787
This is required to support pasting the primary selection into Firefox on compositors only
supporting the public protocol, such as KWin. Getting the selection *from* Firefox is done
via GTK and will be supported from GTK 3.24.23 on.
The public protocol, while practically identical, will replace the gtk-private one eventually.
However, support for the private one will still be needed for a while.
Note: this also updates the auto-generated gtk-primary-selection files.
Differential Revision: https://phabricator.services.mozilla.com/D91594
Before updating test_imestate.html and adding new test to it, I want to use
async syntax.
And this component shouldn't be Core: I18N.
Differential Revision: https://phabricator.services.mozilla.com/D91666
In this patch, I've tried to abstract out all of the platform-specific parts
of what was the nsIconLoaderService into something generic enough to be used
across multiple platforms. I also renamed it and namespaced it to
mozilla::widget::IconLoader.
Depends on D89788
Differential Revision: https://phabricator.services.mozilla.com/D89972
This basic implementation uses the application icon for the icon that goes
into the system tray for now. A later patch in this series will change that
icon to one defined within the associated <xul:menu> element's styles.
Differential Revision: https://phabricator.services.mozilla.com/D89787
Avoid the menu separator artifacts caused by HIThemeDrawMenuSeparator() on macOS Big Sur by drawing the the separator with CGContextFillRect() instead.
Adjust the width of the separator and submenu right margin to resemble Big Sur native popups.
Differential Revision: https://phabricator.services.mozilla.com/D91381
There's no distinction between 'Intel' and 'IntelModern' in release
so even though we switch to 'Intel' it has no effect.
Differential Revision: https://phabricator.services.mozilla.com/D91729
There's no distinction between 'Intel' and 'IntelModern' in release
so even though we switch to 'Intel' it has no effect.
Differential Revision: https://phabricator.services.mozilla.com/D91729
Our telemetry data showed `WinUtils::GetNSWindowPtr` returned nullptr
when constructing `TaskbarTabPreview`. We can't find a way to make such
a situation, but these crashes tell us we should not assume `GetNSWindowPtr`
always returns a valid pointer.
A proposed fix is to change the return value of `GetWindowHook()` from
a reference to a pointer so that the caller can decide what to do
when nullptr is returned.
Differential Revision: https://phabricator.services.mozilla.com/D91471