We can accumulate a bunch of waiting texture ids that never actually get
composited. By the time we go to lock a successive canvas frame, if nothing
has queried a surface descriptor for the preceding frame, it is safe to assume
that the canvas frame will never be rendered, since any record of its texture
id has been erased. In this case, we want to remove the resources allocated
to that texture immediately from the host side rather than let it sit around
indefinitely, in case no composition ever occurs.
Differential Revision: https://phabricator.services.mozilla.com/D196850
I'm keeping the "These tips were archived from" MDN link because not everything
in this doc is updated yet.
Most of the Gecko Profiler archived stuff is covered by existing Profiler user
docs, but there are enough bits and pieces in the archive that I still think it
is worth linking to.
Differential Revision: https://phabricator.services.mozilla.com/D196753
This is expected to be present in ffmpeg, but is only for displaying things on
the command-line, we don't need a "real" implementation.
Differential Revision: https://phabricator.services.mozilla.com/D196062
Running `generate_source_mozbuild.py` needs to be done with a specific version
of pyparsing, this can be done with a virtualenv, like so:
```
cd media/libaom
python3 -m venv temp
. temp/bin/activate
pip install pyparsing==2.4.7
./generate_sources_mozbuild.sh # this runs generate_source_mozbuild.py
```
Differential Revision: https://phabricator.services.mozilla.com/D196060
Now that we transition opacity and background-color, both of which are
accelerated in the compositor, we could do this, which makes activeness
changes a bit less jarring IMO.
Happy to just not take this if you think it's not worth it.
Differential Revision: https://phabricator.services.mozilla.com/D196827
For the common use case of SOCKSv5 for VPNs, Firefox should proxy DNS
request via SOCKS to not leak visited sites to the DNS server and also
reduce fingerprinting on which DNS resolvers was used to websites.
Mullvad also tells their users to enable proxying DNS in their
instructions on how to use SOCKS proxy.[1]
The SOCKS proxy gets to know which website we are connecting anyway. We
could use DNS over HTTPS on SOCKS proxies in the future to be able to
encrypt the hostname with ECH, but that is a project for the future. For
now we want to reduce leaks and therefore also use the SOCKS proxy for
DNS by default.
[1]: https://mullvad.net/en/help/socks5-proxy#get-started
Differential Revision: https://phabricator.services.mozilla.com/D196423
Make NonCustomPropertyId an u16 (because it can, and it's more compact),
and use arrays for ShorthandId::longhands and LonghandId::shorthands.
Differential Revision: https://phabricator.services.mozilla.com/D196759
For the test_google.js the copyObject function in SearchEngineSelector was
performing a shallow copy of the objects from the config. The original config
was being modified because the copied engine had pointers to the inner object
and array from the config.
To fix the issue, the copyObject function is changed to deepCopyObject
function, where we are performing a deep copy of the nested object and array
rather than shallow copies. When we loop over and apply the variant engine
properties cumulatively, they should not modify the original config.
The last two tests were fixed by checking the newSearchConfig.enabled PREF, and
testing for a different arrangement of the params in the url when the PREF is on.
Differential Revision: https://phabricator.services.mozilla.com/D196647
gecko uses IDXGIResource::GetSharedHandle(). But it is recommend not to use anymore to retrieve the handle to a shared resource.
IDXGIResource1::CreateSharedHandle() with D3D11_RESOURCE_MISC_SHARED_NTHANDLE flag should be used instead of the GetSharedHandle().
The CreateSharedHandle() could be called only once for a shared resource. Later calls fail.
HANDLEs of ID3D11Texture2D are replaced by gfx::FileHandleWrappers.
Differential Revision: https://phabricator.services.mozilla.com/D192173