This patch refactors the existing IOUtils::writeAtomic method to add support for the `tmpPath` and `backupFile` options.
Differential Revision: https://phabricator.services.mozilla.com/D82601
This patch introduces a move method to the IOUtils interface, which allows
for renaming/moving files or directories on disk. Source and destination
files may be specified either by an absolute path, or a relative path from
the current working directory.
This method has well-defined behaviour similar to the POSIX mv command
(except that this may create missing directories as necessary).
The behaviour is briefly summarized below:
1. If the source is a file that exists:
a. If the destination is a file that does not exist, the source is
renamed (and re-parented as a child of the destination parent
directory). The destination parent directory will be created if
necessary.
b. If the destination is a file that does exist, the destination is
replaced with the source (unless the noOverwrite option is true).
2. If the source is a directory that exists:
a. If the destination is a directory, then the source directory is
re-parented such that it becomes a child of the destination.
b. If the destination does not exist, then the source is renamed,
creating additional directories if needed.
c. If the destination is a file, then an error occurs.
3. If the source does not exist, an error occurs.
Differential Revision: https://phabricator.services.mozilla.com/D82202
1/ the texture binding expects the pixel pointer to start at the top
left of the valid rectangle, not the top left of the entire mapped
layer;
2/ pending clears must be resolved before compositing the texture;
Differential Revision: https://phabricator.services.mozilla.com/D83587
This would be improved by smoothing the values a bit, but I'm not sure that is
worth the extra complexity at this point. I left out the remote values because
they do not update regularly, but with smoothing, we might be able to
include them as well.
Differential Revision: https://phabricator.services.mozilla.com/D83318
Added private/protected, unimplemented versions of the necessary Java
classes for the menus API, set up event dispatching and listening.
Differential Revision: https://phabricator.services.mozilla.com/D82383
Before these changes, ContentChild.h was the #9 most expensive header to include:
217505 ms: /home/simon/work/fuzzy/obj-x86_64-pc-linux-gnu-optimized/dist/include/mozilla/dom/ContentChild.h (included 105 times, avg 2071 ms)
After these changes, it is no longer among the top 30 most expensive headers.
Some missing includes in other files are added along.
Differential Revision: https://phabricator.services.mozilla.com/D83049
With these changes, on my Linux analysis with ClangBuildAnalyzer, the
top two expensive headers, DOMTypes.h and TabMessageUtils.h are no longer
among the 30 most expensive headers.
Differential Revision: https://phabricator.services.mozilla.com/D82935
In AudioDriftCorrection gtests, the audio in the buffers is simulated by a sine tone of specific amplitude and frequency. This paych implements a way to verify automatically that the expected signal is being received in the output.
Differential Revision: https://phabricator.services.mozilla.com/D81988
When lowering i64x2.shr_s, we can emit a simpler sequence if the shift count is
constant and less than 32; otherwise, a bigger code sequence needs to be
generated. When making this decision, the shift count wasn't masked, making it
so that a negative shift count would satisfy this condition but could be
greater than 32, in the immediate case. Masking the shift count solves the
issue and makes it also possible to use the constant code sequence for larger
shift counts.
The mask value of 63 is appropriate per specification, since we're operating on
an i64x2 register.
Differential Revision: https://phabricator.services.mozilla.com/D82884
On some Adreno 505 and 506 devices we are encountering driver crashes during
glLinkProgram(). The only circumstance in which we have been able to reproduce
locally is when the show-overdraw debug option is enabled. The reason appears to
be that, due to shader optimisation, the debug overdraw variants of many shaders
have identical source code. The crash seems to occur when linking a shader which
has identical source code to a previously linked shader.
This does not, however, explain the non-insignificant numbers of crashes in the
wild because a) it's unlikely many users are enabling overdraw debugging, and b)
some crash reports predate the commit which enabled shader
optimisation. However, it is possible that for a different reason we are
compiling multiple shaders with identical source code.
To attempt to work around this crash this change adds a random comment to the
end of each shader source string, on the affected devices.
Differential Revision: https://phabricator.services.mozilla.com/D83571
we only draw quads, and for quads we have a fixed vertex buffer with positions.
If we get stop using instancing, we'll no longer have the luxury of 4 vertices there.
Given that they are trivial to compute, it seems simpler to just do that in the shader today.
So this PR is a required step on the way to instance-less rendering.
It appears that we are hitting a driver bug with Intel on macOS, where scissored clears don't work properly if we render without per-vertex attributes.
It doesn't make a ton of sense, but switching to quad clears appears to fix it for me. Added the corresponding entry to the wiki - https://github.com/servo/webrender/wiki/Driver-issues#bug-1652763---glitches-on-macos-intel-with-clears
Differential Revision: https://phabricator.services.mozilla.com/D83391
Before this patch, the "Servers" tab of the certificate manager would show
built-in distrust records that had corresponding certificates (lately, this has
only consisted of two DigiNotar look-alike roots that were added many years ago
to block the real DigiNotar roots and potential cross-signs).
This patch changes the implementation to only show certificates that actually
have a corresponding error override in the "Servers" tab.
Differential Revision: https://phabricator.services.mozilla.com/D83190
Continue to allocate the ScriptSource at the start of compilation, but defer
the GC ScriptSourceObject allocation until instantiation.
Differential Revision: https://phabricator.services.mozilla.com/D83579
The field is not accessed during delazification so leave it null. This is
helpful later when we defer ScriptSourceObject allocation.
Differential Revision: https://phabricator.services.mozilla.com/D83578
ScriptSourceObject initialization cannot be completed until ParseTask::finish
is called on main-thread. This initialization must be finished even if the
compilation fails since the debugger may still observe these partial scripts.
This patch makes the various cases consistent and prepares us for deferring
the allocation of the ScriptSourceObject.
Differential Revision: https://phabricator.services.mozilla.com/D83577
This already has checks to make it a no-op, but the code is clearer if we
surface the thread check to the callers.
Depends on D83575
Differential Revision: https://phabricator.services.mozilla.com/D83576