In D98108 we added infrastructure to detect infos for DRM devices in
multi GPU setups. We didn't use it for detecting device and vendor IDs
thought, which remained flaky.
Extend the code a little bit, allowing us to reliably get the right
IDs - at least for mesa drivers. This should make our detection
as reliable as it was when using GLX.
This should stop us from showing the following warning in most cases:
`[GFX1-]: More than 1 GPU from same vendor detected via PCI, cannot deduce device`
Differential Revision: https://phabricator.services.mozilla.com/D119666
Instead of using the Wayland EGL platform. The later is very convenient
but has several limitations. Managing FBOs allows to make our code more
similar to that of MacOS as well as the Wayland software backend.
Most importantly, it will allow us to cleanly implement partial damage
by giving us direct acces to previously submitted buffers, allowing us
to blit back from them, similar like in
`NativeLayerCA::HandlePartialUpdate`.
There are several other fields where more control over buffers will
come in handy, too many to describe them here in detail.
Note: we still use individual buffer pools for each tile. However, this
change brings everything into place to allow us to change to a more
`SurfacePoolCA`-style shared pool. That will reduce GPU-memory usage.
Includes some minor cleanups here and there.
Depends on D119013
Differential Revision: https://phabricator.services.mozilla.com/D118925
Very large gradients are rendered at a lower resolution which is fine for most gradients as they tend to be smooth transitions, but looks bad when there are hard stops.
Differential Revision: https://phabricator.services.mozilla.com/D119628
The tile size edtermines the number of pixels we allocate for the gradinrt pattern, and is eventually clamped to a maximum value. Minimizing the tile size after other transformations avoids some cases where we request more area than we need.
Differential Revision: https://phabricator.services.mozilla.com/D119627
Currently, `increasefontsize`, `decreasefontsize`, `gethtml`, `heading`,
`contentReadOnly`, `readonly` and `insertBrOnReturn` commands are supported
only by Gecko. So, if nobody uses some or all of them, we can drop the
unused commands.
For saving the space of `Document.mUseCounters`, this patch groups
`Document.queryCommandState` and `Document.queryCommandValue` because they
are both getter of the command. The difference is not important. And also
this patch groups `Document.queryCommandSupported` and
`Document.queryCommandEnabled` because they may be used for feature detection
and the difference is not important.
Differential Revision: https://phabricator.services.mozilla.com/D118956
This prevents unwanted direct access to the mutex, and removes duplicated code.
And make the Base Profiler mutex&lock consistent.
Differential Revision: https://phabricator.services.mozilla.com/D119147
There are some methods in `TextServicesDocument` which work only with
`TextServicesDocument::mOffsetTable`. Once we move such methods to custom
class of `nsTArray<UniquePtr<OffsetEntry>>`, we can make `TextServicesDocument`
simpler.
Depends on D119157
Differential Revision: https://phabricator.services.mozilla.com/D119158
`beforeinput` event was shipped and it won't be disabled for avoiding confusion
of web developers. So, we can drop the pref setting of
"dom.input_events.beforeinput.enabled" in our tests.
Depends on D119716
Differential Revision: https://phabricator.services.mozilla.com/D119729
Similarly, the test uses `synthesizeWheel` and it may be handled by the main
process before APZC has the `<iframe>`'s layout information. So, it should
wait `promiseElementReadyForUserInput` before running its first test.
Differential Revision: https://phabricator.services.mozilla.com/D119716
Now, it stores `dom::Text` with `OwningNonNull`. So, once it's leaked, it
wastes a lot of memory spaces. Therefore, we should make `mOffsetTable`
store `UniquePtr<OffsetEntry>` instead of `OffsetEntry*`.
Depends on D119156
Differential Revision: https://phabricator.services.mozilla.com/D119157
Now, the meaning of `OffsetEntry` is clear. Therefore, this patch adds comment
explaining the class and its members.
Then, the meaning of `TextServicesDocument::mSelStartOffset` and
`TextServicesDocument::mSelEndOffset` becomes clearer since they are used to
create `OffsetEntry` instances. Therefore, this patch renames them.
Depends on D119155
Differential Revision: https://phabricator.services.mozilla.com/D119156
This is a step towards removing object private slots.
Classes with JSCLASS_PRIVATE_IS_NSISUPPORTS now use JSCLASS_SLOT0_IS_NSISUPPORTS
instead. For most classes this means we need to add an extra reserved slot and remove
the private slot.
Global objects (SimpleGlobalObject and the XPConnect BackstagePass and Sandbox globals)
however can use the JSCLASS_GLOBAL_APPLICATION_SLOTS already there. These slots were
only used for WebIDL DOM globals until now.
Differential Revision: https://phabricator.services.mozilla.com/D119502