This is the third attempt to investigate the launcher failure of our detour.
The previous commits d8315e4ed18d and 1b81ea85c43d added the assembly bytes
of a detour target and a special error code `DetourResultCode` to the launcher
failure ping.
In the latest telemetry data, however, the most common value of `hresult`
is still `ERROR_UNIDENTIFIED_ERROR`, meaning the previous commit missed to
set an error code in the common fallible codepath we wanted to know.
Besides `ERROR_UNIDENTIFIED_ERROR`, we're seeing `DETOUR_PATCHER_DO_RESERVE_ERROR`
in the telemetry, but having that code is not enough to pinpoint a falling
operation.
For further investigation, this patch adds ten more values to `DetourResultCode`.
`FUNCHOOKCROSSPROCESS_COPYSTUB_ERROR` is the last codepath we forgot to cover
in the previous commit. The values of `MMPOLICY_RESERVE_*` are to investigate
`DETOUR_PATCHER_DO_RESERVE_ERROR` in the MMPolicy level. In both cases, we add
the last Windows error code to `DetourError::mOrigBytes`.
Differential Revision: https://phabricator.services.mozilla.com/D92974
Currently margin values only change when the window goes fullscreen, causes unexpected white borders when moving to a lower-DPI display. This patch fixes that by updating the values whenever DPI changes.
Differential Revision: https://phabricator.services.mozilla.com/D89493
The tooltip width can be real number in the hidpi display setup
or when the font scaling is used. In this case the nsWindow GTK
implementation will cut out the non integer part which leads to
narrowing the tooltip and later overflowing the text which
is in the tooltip to next line. This workaround patch adds
a one pixel to the tooltip frame when the tooltip has real number
width or height.
Differential Revision: https://phabricator.services.mozilla.com/D92620
In order to only call `EnableControl()` twice, once in in `Open()` and another one in `Close()`, so reduce other necessary call of `EnableControl()`.
Differential Revision: https://phabricator.services.mozilla.com/D92118
When close the event source, it should be responsible to clear up and reset the virtual control interface, rather than doing so by `Media Control Server` via setting some empty results.
Differential Revision: https://phabricator.services.mozilla.com/D92116
This allows mesa to continue using the existing vsync implementation
and nvidia to use the new EGL xvisual logic.
It is an intermediate solution until the issues are fixed. However,
assuming it will take a while to do so, it's probably worth it.
Differential Revision: https://phabricator.services.mozilla.com/D92466
In order to only call `EnableControl()` twice, once in in `Open()` and another one in `Close()`, so reduce other necessary call of `EnableControl()`.
Differential Revision: https://phabricator.services.mozilla.com/D92118
When close the event source, it should be responsible to clear up and reset the virtual control interface, rather than doing so by `Media Control Server` via setting some empty results.
Differential Revision: https://phabricator.services.mozilla.com/D92116
This was the last flag that the PrintOptions bitfield was tracking.
So, this patch is effectively converting that bitfield (and its alias
"PrintOptionsBits") into a new, simpler boolean field named
"isPrintSelectionRBEnabled".
Differential Revision: https://phabricator.services.mozilla.com/D92542
BasicCompositor defaults to using BufferMode::BUFFERED, which causes it to draw
into a temporary backbuffer, which it then copies to the widget's surface.
With the addition of the "remote backbuffer" feature, there is now a second
buffering stage. This makes the original backbuffer redundant when
"remote backbuffer" is enabled.
This changes the mode to BufferMode::BUFFER_NONE in that case, and also ensures
that the remote backbuffer preserves contents when resized (which is necessary
because the remote backbuffer needs to be a stand-in for the widget surface)
Differential Revision: https://phabricator.services.mozilla.com/D92661
The default drawing codepath requests the OS to draw it, but the OS seems to
ignore the scaling factor of the transform. So when drawing scrollbars after
APZ-zooming, the scrollthumbs appear abnormally thin. This patch forces us into
the custom drawing codepath which gets scaled properly.
Differential Revision: https://phabricator.services.mozilla.com/D92677
We don't need to flush before dispatching the event because we know that
if the values we cared about changed, then we'd get another event.
Differential Revision: https://phabricator.services.mozilla.com/D92444
This code looked like it might work, but it seems to have only ever been backed
by per-printer about:config prefs. I believe we only ever exposed UI for this
feature on Linux, via the native GTK dialog; and even there, the UI doesn't
actually seem to have done anything -- it was never wired up to the actual
implementation of even/odd page-skipping.
Differential Revision: https://phabricator.services.mozilla.com/D92528
This patch simply removes GTK_PRINT_CAPABILITY_PAGE_SET from our
GtkPrintCapabilities struct. This flag is documented as controlling whether
the gtk "Print dialog will offer printing even/odd pages", per
https://developer.gnome.org/gtk3/stable/GtkPrintUnixDialog.html
After this change, the "Only Print: All Sheets | Even Sheets | Odd Sheets"
dropdown-menu in the GTK Print Dialog will be grayed out & disabled, which will
accurately indicate that we don't support this feature.
Differential Revision: https://phabricator.services.mozilla.com/D92527
When debugging text issue on GV, I sometimes enable `DEBUG_ANDROID_IME` to
output log. But I think that it is better to use `MOZ_LOG` since we can get
the log on Fenix build.
If using GVE, we can output log via the following command.
```
adb shell am start -n org.mozilla.geckoview_example/.GeckoViewActivity --es env0 "MOZ_LOG=GeckoEditableSupport:5"
```
But this change is Nightly only due to footprint etc at first.
Differential Revision: https://phabricator.services.mozilla.com/D92449
The telemetry probe was added in bug 1506434, and it's not necessary anymore
because of the event in the default group was completely disabled in
bug 1288640 (Gecko 65).
Therefore, we can get rid of the pref, and we can take back a room for a
bool member in `nsPIDOMWindowInner` for new telemetry probes which need
to know whether a specific event listener has been added or not.
Depends on D92395
Differential Revision: https://phabricator.services.mozilla.com/D92397
- onSVGZoom is gone and we no longer dispatch it.
- we've never dispatched SVGUnload or SVGResize events and if we did implement these they would be unload and resize events now.
Differential Revision: https://phabricator.services.mozilla.com/D92381
Until bug 1617002 Firefox would unintendedly not get unredirected on X11
when used with WR and OpenGL as it didn't fullfill the requirements -
not being transparent.
Now that this is fixed, fullscreen unredirection can happen on certain
compositors. For the basic compositor we already explicitely ask to not
get unredirected - do that for all backends.
Also adapt tests accordingly.
Differential Revision: https://phabricator.services.mozilla.com/D92180
Until bug 1617002 Firefox would unintendedly not get unredirected on X11
when used with WR and OpenGL as it didn't fullfill the requirements -
not being transparent.
Now that this is fixed, fullscreen unredirection can happen on certain
compositors. For the basic compositor we already explicitely ask to not
get unredirected - do that for all backends.
Also adapt tests accordingly.
Differential Revision: https://phabricator.services.mozilla.com/D92180
Until bug 1617002 Firefox would unintendedly not get unredirected on X11
when used with WR and OpenGL as it didn't fullfill the requirements -
not being transparent.
Now that this is fixed, fullscreen unredirection can happen on certain
compositors. For the basic compositor we already explicitely ask to not
get unredirected - do that for all backends.
Differential Revision: https://phabricator.services.mozilla.com/D92180
Until bug 1617002 Firefox would unintendedly not get unredirected on X11
when used with WR and OpenGL as it didn't fullfill the requirements -
not being transparent.
Now that this is fixed, fullscreen unredirection can happen on certain
compositors. For the basic compositor we already explicitely ask to not
get unredirected - do that for all backends.
Differential Revision: https://phabricator.services.mozilla.com/D92180
In the past we had a problem with transparent windows and window shadows. This
is no longer a problem, because we have dropped the versions of macOS where it
is a problem [1].
So we now support acceleration on all window types.
But we don't necessarily want to use the OpenGL compositor or WebRender for all
windows, due to per-window overhead.
[1] Specifically, the problematic macOS versions are 10.9 and 10.10. On 10.9,
transparent windows with CoreAnimation content never have shadows, and on 10.10,
those windows only get a shadow when they are opened for the second time without
their size changing, see bug 1632895 comment 5. We now support only 10.12+.
Depends on D91828
Differential Revision: https://phabricator.services.mozilla.com/D91829
We already don't support transparency on non-popup windows, but the code in
nsChildView makes it look like we do.
The changes in this patch have the following effects:
- nsCocoaWindow::SetTransparencyMode no longer sets a white background color on
non-popup windows.
- nsChildView picks up the default implementation for Get/SetTransparencyMode
from nsBaseWidget, which ignores calls to SetTransparencyMode and always
returns opaque. The nsChildView methods were only called for non-popup
windows (popup windows call the nsCocoaWindow implementations), so this is
what we want.
Differential Revision: https://phabricator.services.mozilla.com/D91828
This also adds a diagonstic assert to make sure the code works in all process types.
And it adds another item to the sandbox IOKit property name allowlist, so that
the detection works in content processes.
This landed before, in bug 1649490, but without the sandbox adjustment (so it
didn't work in content processes).
Differential Revision: https://phabricator.services.mozilla.com/D91950
Until bug 1617002 Firefox would unintendedly not get unredirected on X11
when used with WR and OpenGL as it didn't fullfill the requirements -
not being transparent.
Now that this is fixed, fullscreen unredirection can happen on certain
compositors. For the basic compositor we already explicitely ask to not
get unredirected - do that for all backends.
Differential Revision: https://phabricator.services.mozilla.com/D92180
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